در این مقاله معرفی مختصری درباره ی استفاده از DataGrid در WPF خواهیم داشت. علاوه بر توضیحات کامل و تصاویر ، سورس نیز در انتهای مطلب برایتان قرار داده شده است… موفق باشید !
DataGrid در WPF
در این جا مراحل ایجاد یک DataGrid در WPF با سطر و ستون های AutoGenerate را دنبال خواهیم کرد.
ایجاد یک پروژه WPF
روی منوی File،Project و سپس Windows و پس از آن WPF Application کلیک می کنیم.
بعد از ایجاد کلیک، صفحه ای که نمایش داده می شود به شکل زیر خواهد بود:
فایل های پیش فرض
App.xaml: این فایل بر کلاس ها و StartUri نظارت می کند که کدام پنجره (فرم) ابتدا اجرا شود. App.xaml از نظر کاربرد همان فایل Program.cs در اپلیکیشن های ویندوز فرم می باشد.
MainWindow.xaml: فایلی است که به طور پیش فرض برای اپلیکیشن های WPF ایجاد می شود. این فایل نیز مشابه Form1.cs است که به طور پیش فرض در ویندوز فرم ایجاد می شود.
WPF از نظر امکانات و کد نویسی، ترکیبی از اپلیکیشن های وب و ویندوز فرم می باشد. فایل فرم WPF مانند Web Form ها دو روش کدنویسی دارد یکی تب XAML و دیگری تب Design.
یک کنترل DataGrid به پروژه اضافه می کنیم.
سایز آن را به صورت دلخواه تنظیم می کنیم. این کار را هم می توان از طریق code behind انجام داد و هم xaml.
در ابتدا، AutoGenerateColumn را true قرار می دهیم و سپس آن را False می کنیم.
قبل از اینکه کدنویسی در Code Behind را شروع کنیم، باید فضاهای نام موردنیاز ADO.Net را برای پر کردن DataGrid به پروژه اضافه کنیم.
برای واکشی رشته اتصال از App.Config، باید رفرنس فایل System.Configuration.dll را به آن بدهیم.
روی نام پروژه یا فولدر Reference کلیک می کنیم.
گزینه Add Reference را انتخاب می کنیم.
با کلیک روی این گزینه، پنجره Reference manager باز می شود.
اولین گزینه از سمت چپ یعنی Framework را انتخاب کرده و سپس System.Configuration را جستجو می کنیم.
پس از اتمام کار رفرنس، می توانیم از فضای نام System.Configuration استفاده کنیم.
فضای نام های موردنیاز
فضای نام های زیر را در فایل MainWindow.xaml.cs اضافه می کنیم.
Using System.Data
برای دریافت کلاس های مدیریت دادهADO.Net
Using System.Data.SqlClient
برای اتصال به Microsoft SQL server
Using System.Configuration
برای واکشی تنظیمات و رشته اتصال از app.config
برای پیاده سازی DataGrid، از سه فایل و جدول به شکل زیر استفاده کردیم.
ساختار جدولی با نام tblFriends در دیتابیس MemberCDAC
USE [MemberCDAC] GO /****** Object: Table [dbo].[tblFriends] Script Date: 12/19/2015 09:48:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[tblFriends]( [FriendID] [int] IDENTITY(1,1) NOT NULL, [FriendName] [varchar](50) NULL, [FriendImage] [varchar](500) NULL, [Place] [varchar](500) NULL, [Mobile] [varchar](20) NULL ) ON [PRIMARY] GO
فایل App.Config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="MemberCDACConnectionString" connectionString="Data Source=SAIBABA-PC\SAIBABA;Initial Catalog=MemberCDAC;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration>
فایل MainWindow.xaml
<Window x:Class="FirstWpfApplication.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="500" Width="700"> <Grid Margin="0,-4,0,4"> <DataGrid HorizontalAlignment="Left" VerticalAlignment="Top" Height="174" Width="562" Margin="0,275,0,0" AutoGenerateColumns="True" Name="grdFriends"/> </Grid> </Window>
فایل MainWindow.xaml.cs
<Window x:Class="FirstWpfApplication.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="500" Width="700"> <Grid Margin="0,-4,0,4"> <DataGrid HorizontalAlignment="Left" VerticalAlignment="Top" Height="174" Width="562" Margin="0,275,0,0" AutoGenerateColumns="True" Name="grdFriends"/> </Grid> </Window>
در تصویر بالا، autogeneratedcolumn در حالت true می باشد.
حالا می خواهیم ببینیم که چگونه می توان ستون ها را به صورت دستی تنظیم کرد.
MainWindow.xaml
در کد زیر به صورت دستی نام ستون ها و تغییرات ظاهری دیگر را تنظیم کردیم.
<Window x:Class="FirstWpfApplication.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="500" Width="700"> <Grid Margin="0,-4,0,4"> <DataGrid HorizontalAlignment="Left" VerticalAlignment="Top" Height="174" Width="649" Margin="0,275,0,0" AutoGenerateColumns="False" Name="grdFriends"> <DataGrid.Columns> <DataGridTextColumn Header="Friend ID" Width="100" Binding="{Binding FriendID}" FontSize="14" FontWeight="Bold" /> <DataGridTextColumn Header="Friend Name" Width="300" Binding="{Binding FriendName}" FontSize="14" FontWeight="Bold" /> <DataGridTextColumn Header="Place " Width="100" Binding="{Binding Place}" FontSize="14" FontWeight="Bold" /> <DataGridTextColumn Header="Mobile" Width="100" Binding="{Binding Mobile}" FontSize="14" FontWeight="Bold" /> </DataGrid.Columns> </DataGrid> </Grid> /Window>
موفق باشید !
دیدگاهها