PDA

View Full Version : آموزش: ایجاد و استفاده DataGrid در WPF



kh2003
یک شنبه 23 آبان 1389, 14:37 عصر
با سلام
زمانی که شماه کنترل DataGrid رو از ToolBox به داخل Form برنامه تان Drag & Drop میکنید ، کدهای XAML زیر به صورت خودکار ایجاد می شوند:

<DataGrid Height="150" HorizontalAlignment="Left" Margin="12,21,0,0" Name="DataGrid1" VerticalAlignment="Top" Width="225"/>
خاصیتهای Height و Width معرف طول و عرض کنترل DataGrid هستند. خاصیت Margin برای تعیین حاشیه های کنترل در Form برنامه نیز بکار می رود.
در تکه کد فوق حاشیه،نام،طول و عرض کنترل تعیین شده.
شکل زیر ToolBox و کد XAML رو بعد از افزودن DataGrid نمایش می دهد.
http://up.iranblog.com/Files73/5b98b5da5eab4c49ac97.jpg

Data Binding ::
در این مثال ما میخواهیم یک مجموعه Objectها رو ایجاد و در کنترل DataGrid ، آنها را Bind کنیم.
ما اول باید یک Class را در پروژه خودمان تعریف کنیم (نام کلاس در این مثال Book هستش)و کلاس ما شامل ID , Name , bookDate , bookTitle , bookPub می باشد.
کلاس Book رو بصورت زیر تعریف می کنیم:


publicclassbook
{
publicint ID { get; set; }
publicstring Name { get; set; }
publicDateTime bookDate { get; set; }
publicstring bookTitle { get; set; }
publicstring bookPub { get; set; }
}

حالا یک مجموعه شیء Book رو با استفاده از لیست کلاس ایجاد می کنیم . متد DataBinding() یک لیست اشیاء Book رو ایجاد می کنه :


privateList<book> DataBinding()
{
List<book> books = newList<book>();
books.Add(newbook()
{
ID = 100,
Name = "برنامه نویسی C#‎‎",
bookDate = newDateTime(1389, 10, 15),
bookTitle = "گروه برنامه نویسی",
bookPub="Worx"
});
books.Add(newbook()
{
ID = 101,
Name = "امنیت در ASP.NET",
bookDate = newDateTime(1389, 10, 20),
bookTitle = "گروه برنامه نویسی",
bookPub="Apress"
});
books.Add(newbook()
{
ID = 102,
Name = "برنامه نویسی WPF در C#‎‎",
bookDate = newDateTime(1389, 10, 10),
bookTitle = "گروه برنامه نویسی",
bookPub="Apress"
});
books.Add(newbook()
{
ID = 103,
Name = "برنامه نویسی پشیرفته C#‎‎",
bookDate = newDateTime(1389 , 10, 15),
bookTitle = "گروه برنامه نویسی",
bookPub = "Worx"
});
return books;
 
}

وقتی که کدهای بالا رو به برنامه اضافه کردیم وقتش میرسه که باید ستونهای DataGrid رو ایجاد کنیم و Binding رو انجام بدیم به این صورت که کدهای XAML فوق را به برنامه و بین تگ <DataGrid> اضافه کنیم مطابق شکل زیر :
http://up.iranblog.com/Files73/1683a5b38f9a4bb9baab.jpg
حالا مرحله آخر Set کردن خاصیت ItemSource کنترل DataGrid هستش. تکه کد زیر خاصیت ItemSource رو برابر لیست Book قرار میدهد :



dataGrid1.ItemsSource = DataBinding();


حالا خروجی برنامه باید به شکل زیر باشد.

http://up.iranblog.com/Files73/bc2512efdb41455f949c.jpg