你能在c#中绑定属性值到变量/数据吗?
本文关键字:变量 数据 属性 绑定 | 更新日期: 2023-09-27 18:17:35
在Flex (AS3)中,您可以将属性绑定到表达式/变量/对象。例如,button.enabled = {!obj.name.empty}
它使得非常整洁的GUI验证在其他事情中。
我在Visual Studio GUI设计器中没有看到任何这样的功能,但我想知道这种功能是否存在于。net/c#中,如果存在,到什么程度?
我在Visual Studio GUI设计器中没有看到任何这样的功能
事实上是有的。在设计器中选择窗体/控件,然后转到属性窗口并展开(DataBindings)类别。您将在那里看到几个属性,如果您单击(高级)项,则会看到更多属性。
到什么程度?
只能绑定到一个属性(不支持表达式)。要使其工作,提供属性的对象必须支持属性更改通知。标准方法是实现INotifyPropertyChanged
接口,但也有其他机制- IBindingList
实现提供ListChanged
事件,对象为PropertyName
提供名为PropertyNameChanged
的事件等。
正如我提到的,通常只能绑定到属性。但是,在运行时使用一些帮助程序,您可以真正绑定到方法或表达式。我已经在以下线程中提供了这样做的例子:文本更改事件时的按钮启用和禁用,带有数据绑定的表单上的Exchange UserControls,与转换器不工作的自定义WinForms数据绑定(双?),. net WinForms设计为单个项目数据绑定同步数据和控件,以及我自己的问题跨表格数据绑定在WPF中用于更复杂的场景。
与一些wpf人士所说的相反,当绑定到自定义对象/集合时,没有WF限制。唯一的限制是绑定到其他控件属性时,因为控件属性通知模式不像在WPF中那样严格遵循。