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");
}
}