繁体   English   中英

使用ViewModel Winforms数据绑定

[英]Winforms Databinding with a ViewModel

我有一个表示mydatabase表的类列表,例如Address,Client。

我的GUI往往是数据网格和数据输入表单。 这适用于单表数据输入,但我现在有一个表单,其中包含客户端信息及其地址。

我正在考虑使用ViewModel组合Address和Client类,并将其分配给bindingsource并将我的控件绑定到该类。

如何将控件绑定到属性名称? 这会有用......

if (txtLine1.DataBindings.Count == 0)
                txtLine1.DataBindings.Add("Text", bindingSource, "Address.Line1", false, DataSourceUpdateMode.OnPropertyChanged);

Winform数据绑定甚至可以使用ViewModel吗?

我创建了一个ViewModel,然后在VS中创建了一个DataSource。 然后我将viewmodel中类的属性拖到窗体中,这就创建了我需要的控件。 然后,我在viewmodel中为每个类调用Save方法。

如果你正在使用VS设计器,你可以使用控件的数据绑定属性设置绑定 - 让样板代码由VS生成,如果没有绑定设计器中的东西并检查生成的代码。 只需将BindingSource添加到表单并绑定到该表单上的属性即可。 然后在拥有ViewModel时设置BindingSource.DataSource。

在WinForms中绑定到ViewModel的关键是实现接口INotifyPropertyChange并在模型上所有属性的setter中触发PropertyChanged事件,并将该属性的名称作为字符串传递。 此事件由任何WinForms控件捕获,如果您更改模型上的任何内容,它将更新。 这也意味着您可以在演示者上捕获事件(如果有)并在那里执行任何计算/操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM