假设我有一个名为 X 的全局变量 INT。由于 X 是全局变量,我们可以假设任何东西都可以修改它的值,因此每次都会更改它。
假设我有一个名为“label”的标签控件。这就是我想要实现的目标:
我想将 label.Text 的值“绑定”到变量 X。这样,当变量 X 更改时,它将反映回 label.Text。
现在,我不想编写事件侦听器并使用此事件侦听器来玩委托(我想要尽可能少的代码)。有没有一种方法可以为此使用 DataBinding 组件?或任何其他新颖的技术?
如果要使用数据绑定基础结构并反映对值所做的更改,则需要一种方法来通知 UI 有关对绑定值所做的更改。
因此,最好的方法是使用属性并实现INotifyPropertyChanged
界面,像这样:
class frmFoo : Form, INotifyPropertyChanged
{
private string _foo;
public string Foo
{
get { return _foo; }
set
{
_foo = value;
OnPropertyChanged("Foo");
}
}
protected virtual void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
另请记住,您需要首先在标签上设置绑定:
public frmFoo()
{
InitializeComponent();
lblTest.DataBindings.Add(new Binding("Text", this, "Foo"));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)