PDA

View Full Version : تفاوت Data Binding در ویندوز فرم و wpf



negar.rafie
سه شنبه 11 آبان 1395, 16:30 عصر
سلام
بنده در ویندوز فرم میتونم به صورت دیتاباندیگ کار کنم و از bindingsource استفاده میکنم
ولی در wpf جواب نمیده

فرقش چیه؟
در wpf باید چگونه استفاده کنیم

ی تاپیک هم زدم:

http://barnamenevis.org/showthread.php?531892-%D8%A8%D8%B1%D9%88%D8%B2-%D8%B1%D8%B3%D8%A7%D9%86%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7%DA%AF%D8%B1%DB%8C%D8%AF-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B9%D9%85%D8%A7%D9%84-%D8%AD%D8%B0%D9%81%D8%8C%D8%AF%D8%B1%D8%AC-%D9%88-%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4

mrprestige
سه شنبه 11 آبان 1395, 20:13 عصر
عرض سلام و وقت بخیر ، سرکار خانم negar.rafie (http://barnamenevis.org/member.php?237705-negar-rafie) شما برای اینکه بتونید معادل Databinding موجود در Winform رو در WPF استفاده کنید باید از عبارت Binding در کد های Xaml تون استفاده کنید . با یه مثال ساده عرض میکنم اول شما یک کلاس ایجاد کنید به نام Person ایجاد کنید و دوتا Property نام و نام خانوادگی براش set کنید به این صورت

public class Person
{
public string Fname { get; set; }
public string Lname { get; set; }
}

سپس دوتا Textbox روی فرم قرار بدید (پیشنهاد میکنم با کدنویسی این کار رو بکنید منظورم اینه از Toolbox انتخاب نکنید) و بعد از اینکه صفحه فرم رو تقسیم بندی کردید کدهای Xaml مربوطه رو به این صورت بنویسید

<TextBox Text="{Binding Fname}" x:name="txtFname" Margin="20" Grid.Row="1"></TextBox>
<TextBox Text="{Binding Lname}" x:name="txtLname" Margin="20" Grid.Row="2"></TextBox>

و یک کنترل Button هم ایجاد کنید در خاصیت Click اون این رو بنویسید

var prsn = new List<Person>();
var p = new Person {Fname ="MR", Lname = "Prestige"};
prsn.Add(p);
txtFname.Datacontext=prsn;
txtLname.Datacontext=prsn;


حالا برنامه رو اجرا کنید روی Button کلیک کنید میبینید که پراپرتی Fname به txtFname و پراپرتی Lname به txtLname بایند شده .

پیروز و موفق باشید .

ژیار رحیمی
چهارشنبه 12 آبان 1395, 01:12 صبح
در واقع تفاوت های زیادی بین WPF DataBinding و WinForm DataBinding وجود دارد.

1-فعال کردن اعلان بایندینگ
WinForm: INotifyPropertyChanged; collection: IBindingList.
WPF: INotifyPropertyChanged; collection: INotifyCollectionChanged.


2.واسط بایندینگ:
WinForm: BindingSource.
WPF: CollectionView


3. پراپرتی های معمول کنترل که برای بایند کردن به دیتا سورس استفاده میشود
WinForm: DataSource;
WPF: ItemsSource;