是否可以将字段(文本框)绑定(bind)到未实现集合的属性?
例如,我有一个对象实现了 INotifyPropertyChanged 的 3 个字段:
public decimal SubTotal
{
get { return this.subTotal; }
set
{
this.subTotal = value;
this.NotifyPropertyChanged("SubTotal");
this.NotifyPropertyChanged("Tax");
this.NotifyPropertyChanged("Total");
}
}
public decimal Tax
{
get { return this.taxCalculator.Calculate(this.SubTotal, this.Region); }
}
public decimal Total
{
get { return this.SubTotal + this.Tax; }
}
我还不能完全测试它,因为 UI 还没有制作,而且在它起作用之前在这个类中还有很多其他工作要做,但这是否可能是我拥有的方式,或者是否有不同的方式怎么办?
最佳答案
您可以使用此类属性作为数据绑定(bind)源。自然地,任何此类数据绑定(bind)都必须是 OneWay
而不是 TwoWay
,这样对 TextBox.Text
的更改将不会尝试传播回属性(由于它是只读的而失败)。
[编辑] 以上内容仍然适用于 WinForms,但您无需关心 OneWay/TwoWay
。如果它是只读的,它永远不会尝试更新源。
关于c# - 数据绑定(bind)到只读属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280022/