Wpf 显示当单元格中的任何值更改时更新的几列的总和

Wpf 显示当单元格中的任何值更改时更新的几列的总和,wpf,data-binding,command,label,Wpf,Data Binding,Command,Label,我试图在标签中显示两列或多列中的值的总和(即组合总和),尽管我可以在加载数据时获得值,但当应用程序运行时单元格中的值发生更改时,总和缺少更新功能 如何实现此功能?我认为添加一个按钮来求和和和使用路由命令会更容易。我更喜欢无按钮的方式,因为总和是应用程序的重点,我不希望用户在值更改时一直按按钮来更新总和 您使用的是什么控件 Datagrid fo示例中有一些事件,您可以在用户在此事件后完成单元格编辑时使用这些事件。您可以恢复值并更新标签,您需要在任何值发生更改时发出PropertyChange通知

我试图在标签中显示两列或多列中的值的总和(即组合总和),尽管我可以在加载数据时获得值,但当应用程序运行时单元格中的值发生更改时,总和缺少更新功能


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

您使用的是什么控件


Datagrid fo示例中有一些事件,您可以在用户在此事件后完成单元格编辑时使用这些事件。您可以恢复值并更新标签,

您需要在任何值发生更改时发出
PropertyChange
通知
Sum
属性,因此,总和的绑定知道它需要重新评估

比如说,

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

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


另外,如果要绑定到
文本框
,则
更新资源触发器
的默认值为
LostFocus
,因此在文本框失去焦点之前,您的setter和PropertyChange通知不会运行。如果您想根据用户编号中的类型重新计算绑定的
UpdateSourceTracger
,则可以将其更改为
OnPropertyChange

我使用的是listview,或者更确切地说是基于以前在同一应用程序上工作的人制作的listview的控件。用户无法直接编辑单元格,单元格中的数字是通过窗口上的组合框更新的。这不是一个注释而不是答案吗;请考虑搬家。ThanksPropertyChange用于对绑定属性进行UI更新。不用于从UI获取新值。
SomeDataObject.PropertyChanged += SomeDataObject_PropertyChanged;

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