是否有可能的字段(文本框)结合于不执行一组属性?

例如我具有与3个字段实现INotifyPropertyChanged的对象:

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不言并没有在这个类做的时候,才发挥作用等很多工作,但是这是有可能我的方式,还是有不同方式是什么?

有帮助吗?

解决方案

可以使用这样的特性作为数据绑定的源。当然,任何这样的数据绑定将必须OneWay和不TwoWay,这样就TextBox.Text变化将不会试图传播回特性(因为它是只读的失败)。

[编辑] 以上仍然适用于的WinForms,但你并不需要关心OneWay/TwoWay。这将只是从来没有尝试更新的来源,如果是只读的。

其他提示

我只是想,它工作正常。绑定引擎不尝试更新只读属性。它不会阻止编辑控件(除非你让他们只读),但编辑的值会不持久

没有,因为数据绑定在很大程度上依赖于对经由反射检索属性的设定值,你将有很多麻烦数据绑定的和期待值要在一个只读属性设置。

在这个例子中,你将无法进行数据绑定到TaxTotal性质。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top