Skip to main content

Posts

Showing posts from 2011

Simple Data Binding in WPF

අපි කලින් ලියුමක WPF වල layouts ලේසියෙන් හදාගන්නේ කොහොමද කියල බැලුවා කට්ටියට මතක ඇති නේද. ඉතින් අද අපි බලන්න යන්නේ මෙතනින් තව පොඩ්ඩක් ඉස්සරහට යන්නේ කොහොමද කියල. ඒ කියන්න අද අපි බලමු අපි මේ හදාගත්ත client window එක කොහොමද අපේ business layer එකත් එක්ක connect කරන්නේ කියල. ඒකට තියෙන සරලම සහ හොඳම විදිහ තමා මේ Data Binding කියල කියන්නේ. Data Binding වලින් අපිට පුළුවන් අපේ Business Layer එකයි UI එකයි අතරේ data auto update කරන්න. Data Binding කොටස් දෙකක් තියෙනවා Unidirectional කියන්නේ source එකේ ඉඳල target එකට හරි target එකේ ඉඳල source එකට හරි එක පැත්තකට විතරක් data update වෙන එකට. Bidirectional කියන්නේ source එකෙන් target එකටයි target එකෙන් source එකයි දෙපැත්තටම data update වෙන එකට. ඒ වගේම binding target එක හැම වෙලේම DependencyProperty එකක් වෙන්න ඕනෙ.(DependencyProperty එකක් කියන්නේ සරලව ගත්තොත් object එකක අපිට runtime එකේදී වෙනස් කරන්න පුළුවන් property එකක්.) ඉස්සෙල්ලම අපි මෙන්න මේ පහල තියෙන Window එක හදාගෙන ඉමු. මේකට ඕනෙ කරන XAML markup එක තමා පහල තියෙන්නේ. <Windo

WPF Layout Techniques - Grids

අපි දන්නවා WPF එහෙම නැත්නම් Windows Presentation Foundation කිව්වම Windows applications ගොඩක් ලස්සනට හදාගන්න Microsoft එකෙන් අපිට දීල තියෙන technology එකක්. ඉතින් අපි අද බලමු ඕනෙම application එකක් හදද්දී අපිට ගොඩක් වැදගත් දෙයක් වෙන control layout එක ලේසියෙන් කරගන්නේ කොහොමද කියල. මේකට අපි පාවිච්චි කරන්නේ Grid කියන control එක. අපි අද අපේ උදාහරණය විදිහට ගන්නේ සරල Login form එකක්. කට්ටියට මතක නේ අපි web pages හදද්දී <table></table> tags වලින් layout හදනවා මේ වැඩෙත් ටිකක් විතර එකට සමානයි. වැඩි කතා නැතුව බලමුකෝ අපි මොකද්ද කරන්න හදන්නේ කියලා. Login Window දැන් අපි බලමු මේක හදාගන්නේ කොහොමද කියල. අපි මුලින්ම කරගන්න ඕනෙ වැඩේ තමයි අපේ basic layout එක grid එකක් පාවිච්චි කරලා හදාගන්න එක. මේ තියෙන්නේ ඒකට ඕනෙ කරන xaml code එක. <Window x:Class="WpfBasics.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Login to WPF Sample" Height

Introduction to Extension methods

අද අපි කතා කරන්න ලෑස්ති වෙන්නේ C# වල තියෙන අපිට ප්‍රයෝජනවත් වෙන තවත් feature එකක් ගැන. ඒ තමා මේ Extension Methods. අපි පුරුදු විදිහටම සරල උදාහරණයක්‌ එක්කම මේක පටන් ගමු. using System; namespace ExtensionTest { static class ExtensionMethods { public static int GetSquaredValue(this int num) { return num * num; } } class Program { static void Main(string[] args) { int i = 20; int squaredValue = i.GetSquaredValue(); Console.WriteLine("The squared value of {0} is {1}.",i,squaredValue); } } } දැන් බලමු මොකක්ද මෙතන ඇත්තටම සිද්ද වෙන්නේ කියල. ඕනේ නම් මේ code එක run කරලා බලන්නකො වැඩ කරනවා ද කියල. මුලින්ම අපි කරලා තියෙන්නේ static class එකක් declare කරනවා අපේ Extension method එක ලියාගන්න. ඊට පස්සේ අපි කරන්නේ අපේ Extension method එක ලියාගන්නවා මේ class එක ඇතුලේ. මෙතන අපි ගන්නේ ඉලක්කමක වර්ගය හොයාගන්න පුළුවන් method එකක් GetSquaredValue කියල නේ නම දාල තියෙන්නෙත්

How to set a web page to the center of the browser

අද අපි කතා කරන්න ලැස්ති වෙන්නේ අපිට web page එකක් design කරනකොට ඕනේ වෙන පොඩි technique එකක් ගැන. ඔයාල ඕනේ තරම් දැකල ඇති web sites වල මුළු page එකම center වෙලා තියෙනවා. අපි උදාහරණයක්‌ ගත්තොත් W3Schools site එක වගේ. පේනවා නේ site එකේ content එක page එකේ මැදට වෙන්න තියෙන ලස්සන. මේක කරගන්න පුළුවන් මෙන්න මේ විදිහට. <html> <head> <title>Testing Centered Content</title> </head> <body> <div id="mainContent" style="width:900px;margin-left:auto; margin-right:auto;background-color:Gray;height:500px"> This is the content which is centered </div> </body> </html> මෙතන අපි ඇත්තටම විශේෂ දේවල් පාවිච්චි කරලා නෑ. සරල html code එකක් තමා තියෙන්නේ. අපි <div> එකක් හදාගෙන තියෙනවා mainContent කියල. ඒ div ඒකට style එකක් apply කරල තියෙනවා. එකේ අපි කරලා තියෙන්නේ site එකේ content width එක සෙට් කරලා තියෙනවා pixel 900 කට. ඊට පස්සේ වැදගත් වෙන්නේ margin-left එකයි margi

If then else short hand

ඔයාල කවුරුත් ගොඩක් වෙලාවට පාවිච්චි කරන if then else කියන statements ගැන අලුත් දෙයක් කියල දෙන්න තමා අද ලෑස්ති වෙන්නේ. මුලින්ම අපි බලමු සාමාන්‍යයෙන් අපි if then else ලියන්නේ කොහොමද කියල. අපි මේ වෙලාවේ උදාහරණයක්‌ විදිහට ගමු ඉලක්කම් දෙකකින් ලොකු ඉලක්කම මොකක්ද කියල හොයාගන්න පාවිච්චි කරන සරල function එකක්. අපි කවුරුත් මේ වගේ එව්වා ලියල තියෙනවා programming පුරුදු වෙන කාලේ, private int GetMax(int i, int j) { int max; if (i > j) { //condition එක true උනාම කරන්න ඕනේ වැඩේ max = i; } else { //condition එක false උනාම කරන්න ඕනේ වැඩේ max = j; } return max; } එත් ඉතින් මෙච්චර පුංචි දෙයක් ලියාගන්න ඇයි අපි මෙච්චර මහන්සි වෙන්නේ? ඒ function එකම අපිට ලියාගන්න පුළුවන් පහල පෙන්නලා තියෙන විදිහට. private int GetMax(int i, int j) { int max; max = i > j ? i : j; return max; } මේ ලියල තියෙන code එක පොඩ්ඩක් විතර කතා කලොත්, = ලකුණයි ? ලකුණයි අතරට එන්නේ අපිට check කරන්න ඕනේ condition එ

Passing Arrays to methods in a better way

අද අපි බලන්න යන්නේ C# වල තියෙන තවත් අපට ගොඩක් ප්‍රයෝජනවත් වෙන දෙයක් ගැන. ගොඩක් වෙලාවට අපි methods ලියද්දි අපිට ඕනේ වෙනවා මේ methods වලට Arrays pass කරන්න. ඒ වගේ වෙලාවට අපි කරන්නේ method එක call කරන තැන Array එකක් හදල ඒකට data දාල method ඒකට pass කරන එක.  පහල පෙන්නලා තියෙන්නේ එක කරගන්න විදිහ. int Add(int[] data) {    int sum = 0;    for (int i = 0; i < data.Length; i++)    {       sum += data[i];    }    return sum; } අපි දැන් මේ method එක call කරන්න පුළුවන් මෙන්න මේ විදිහට. void TestArray() {     int[] data = new int[4];     data[0] = 3;     data[1] = 5;     data[2] = 2;     data[3] = 7;     int sum = Add(data); } පේනවා නෙ අපි array එක හදල ඒකට values දාල එවන විදිහ.මේක ඉතින් එච්චරම ලේසි වැඩක් නෙමෙයි කියල දැන් පැහැදිලි නෙ. ඒත් මේක කරගන්න මීට වඩා ලේසි ක්‍රමයක් තියෙනවා. ඒ ගැන කතා කරන්න තම අපි මේ ලෑස්ති වෙන්නේ. මේකට අපට තියෙන ලේසිම විදිහ තමා params keyword එක පාවිච්චි කරන එක. එක කරගන්නේ කොහොමද කියල පහල පෙන්නලා දීල තියෙනවා. int Add(param int[] data)

WPF Multiline TextBox

ඔන්න අපි හදන්නේ අදත් පුංචි Tip එකක් දෙන්න. මේ ප්‍රශ්නේ මට අවේ මම පොඩි WPF Window එකක් design කර කර ඉන්නකොට. අපි කොහොමද WPF වලදී Multiline TextBox එකක් හදාගන්නේ කියන එක තමා ඉතින් ප්‍රශ්නේ. මුලින්ම මම කලේ ඉතින් නිකම්ම TextBox control එකක් දාගෙන එකේ තියෙන Properties එක එක බැලුව මේ වැඩේ කරගන්න විදියක් තියෙනවද කියල. මොකද Windows Forms වල නම් තියෙනවා නේ Property එකක් කෙලින්ම Multiline කියලම. ඒක true කරපු ගමන් බඩු වැඩ. ඒත් කරුමෙට මේකේ එහෙම Property එකක් තිබ්බෙත් නෑ. පස්සේ මම ඉතින් කවදත් අපේ උදව්වට ඉන්න Google ගෙන් අහල බැලුව. මෙන්න උත්තරේ. ඇත්තටම අපිට WPF වලදී මේක ගොඩ දාගන්න Properties 3 ක් ඕනේ වෙනවා. පහල තියෙන්නේ ඒකට අදාල xaml markup එක. <TextBox Name="TextDescription" Height="60" Width="250" Margin="10,0,0,0" VerticalScrollBarVisibility ="Visible" AcceptsReturn ="True" TextWrapping ="Wrap"/> ඔන්න අපට වැදගත් වෙන එව්වා underline කරලම තියෙනවා. VerticalScrollBarVisibility  කියල කියන්නේ අපිට මේකේ scroll bar එ

How to UNLOCK an Oracle user account

අපි අද කතා කරන්න හදන්නේ තවත් පොඩි Tip එකක් ගැන. ඒ තමා Oracle user account එකක් lock උනාම එක unlock කරගන්න විදිහ. අපි බැලුවොත් මේ accounts lock වෙන්නේ කොහොමද කියල, ඒක ගොඩක් වෙලාවට වෙන්නේ අපි වැරදි passwords ගහල Oracle වලට log වෙන්න හදද්දී තමා. ඉතින් දැන් අපි හිතුවොත් අපේ scott කියන account එක lock වෙලා කියල. අපි මුලින්ම කරන්න ඕනේ SqlPlus open කරලා (PLSQL Developer උනත් කමක් නෑ), Oracle වලට log වෙන්න ඕනේ SYS account එකෙන්. ඊට පස්සේ පහල තියෙන command එක ගැහුවම වැඩේ ගොඩ යන්න ඕනේ. SQL> ALTER USER scott ACCOUNT UNLOCK;