شماره تماس 09336863931 | 09178169907 پست الکترونیک info@provid.ir

ده برتری WPF به Win Forms – قسمت ششم

در این پست، قسمت ششم از سری آموزش “ده برتری WPF به Win Forms” از وبسایت پرووید را برای شما عزیزان قرار داده ایم. به ادامه ی مطلب بروید.

به عنوان ششمین برتری از مجموعه برتری های WPF نسبت به Windows Form Application ها باید به قابلیت Data Binding در WPF اشاره کنیم. Data Binding یکی از ویژگی های بسیار جالب WPF است که در بسته ی جامع آموزش WPF و همچنین بسته ی آموزش سیلورلایت به آن اشاره کرده ایم. با استفاده از Data Binding کارهای بسیار جالب و زیادی را می توان انجام داد. یکی از این کارها پیاده سازی الگوی MVVM است. نشان دادن داده ها در دیتاگرید نیز با استفاده از Data Binding بسیار ساده است:

Binding Data to a DataGrid in WPF

تنها کاری که لازم است انجام دهید تنظیم کردن DataContext مربوط به DataGrid است. به کد زیر دقت کنید:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
// create a connection to Top Trumps database
String cs = ConfigurationManager.ConnectionStrings["csMovies"].ConnectionString;
SqlConnection cn = new SqlConnection(cs);

try
{
// create a new dataset
DataSet ds = new DataSet();

// open the connection (not strictly necessary, as the
// data adapter will do this when you use it anyway)
cn.Open();

// fill data tables
SqlDataAdapter daMoviess = new SqlDataAdapter();
daMoviess.SelectCommand =
new SqlCommand("SELECT * FROM tblMovies WHERE PackId=1", cn);
daMoviess.Fill(ds, "Movies");

// now set the data context for the entire window
this.DataContext = ds;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{

// close the connection whether went wrong or not
cn.Close();
}
}

 

پس از آن با استفاده از پروتپرتی ItemsSource مربوط به DataGrid داده ها را نشان می دهید. به کد XAML زیر دقت کنید:

Binding Data to a DataGrid in WPF2

Data Binding دو طرفه

با استفاده از Data Binding دو طرفه می توانید به راحتی به رویدادهای دیتاگرید واکنش نشان دهید. برای مثال، کد زیر با دابل کلیک کردن روی یکی از آیتم های دیتاگرید اجرا می شود و آن آیتم کلیک شده را بر می گرداند:

private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)

{
// find out the row clicked on
DataRowView dr = dg.SelectedItem as DataRowView;

// get the field values for this row
string FilmName = (int)dr["FilmName"];
int FilmOscarWins = (int)dr["FilmOscarWins"];

// display choice made
MessageBox.Show(FilmName + ' ' + FilmOscarWins.ToString());
}

 

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *