在winform C#中自动重置数据绑定



正如我们所有人所知,如果我们想将WinForm中的控件绑定到属性,则必须通过以下方式完成:

txtTitle.DataBindings.Add(new Binding("Text", object, "Name", true, DataSourceUpdateMode.OnPropertyChanged))

但在这种情况下,如果";对象";(绑定的第二个参数(更改为另一个,为了反映UI中的更改,我们必须以这种方式重置绑定:

txtTitle.DataBindings.Clear();
txtTitle.DataBindings.Add(new Binding("Text", object, "Name", true, DataSourceUpdateMode.OnPropertyChanged))

但我正在寻找一种自动完成上述代码片段的解决方案,而无需手动完成。我认为BindingSource可能会帮助我,因为它有ResetBinding((方法,但我不确定。我会感谢你的导游。提前谢谢。

编辑:我知道如何通过实现INotifyPropertyChanged接口在更改属性值后更新UI元素,但我的问题是如何处理当我的对象UI控件绑定到其属性时发生更改的情况,而不是属性本身。

。。考虑一下这种情况。我有一个类的对象列表,我想将我的文本框绑定到这个类的属性,但基于某些情况,我想更改从该列表中选择的对象,因此必须更新文本框以反映新对象的属性值。在当前阶段,我唯一可以使用的解决方案是删除以前的绑定并添加新的绑定。我希望UI元素能够以某种方式了解这种情况,并自动或使用尽可能小的代码显示新对象的属性值。

除非我真的不理解您的用例,否则您所需要的只是TextBox和数据对象之间的BindingSource对象。

您不将TextBox直接绑定到对象,而是绑定到BindingSource。您所要做的就是使用BindingSource的CCD_ 3和CCD_;开关";哪个对象用作控件的数据源。

参见:MS Docs

最新更新