0

我正在尝试在标签中显示两列或多列中的值的总和(即组合总和),虽然我可以在加载数据时获得一个值,但总和缺乏在值时更新的功能应用程序运行时在单元格中更改。

如何实现此功能?我认为添加一个按钮来求和并使用路由命令会更容易。我更喜欢无按钮的方式,因为总和是应用程序的重点,我不希望用户在值更改时继续按下按钮来更新总和。

4

2 回答 2

1

每当其中一个值发生更改时,您都需要PropertyChange为该Sum属性发出通知,因此 Sum 的绑定知道它需要重新评估。

例如,

public int Value1
{
    get { return _value1; }
    set
    {
        if (_value1 != value)
        {
            _value1 = value;
            RaisePropertyChanged("Value1");
            RaisePropertyChanged("Sum");
        }
    }    
}

或者

SomeDataObject.PropertyChanged += SomeDataObject_PropertyChanged;

void SomeDataObject_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "Value1" || e.PropertyName == "Value2")
    {
        RaisePropertyChanged("Sum");
    }
}

要引发属性更改通知,您需要实现INotifyPropertyChanged接口

此外,如果您绑定到 a TextBox,则默认值为UpdateSourceTriggeris LostFocus,因此您的 setter 和 PropertyChange 通知在 TextBox 失去焦点之前不会运行。如果您想在用户输入他们的号码时重新评估它,您可以UpdateSourceTrigger将绑定更改为。OnPropertyChange

于 2013-04-24T15:18:34.873 回答
0

你用的是什么控件?

Datagrid fo 示例具有事件,当用户在此事件之后完成编辑单元格时可以使用这些事件,您可以对值进行恢复并更新标签,

于 2013-04-24T14:58:27.050 回答