C# 如何从同一WPF数据网格中的两个输入列中获取总列值
如何计算两个输入列的值,以便在运行时在同一数据网格中显示总计列。哪个事件是计算网格值的最佳事件。请帮帮我 XAML:C# 如何从同一WPF数据网格中的两个输入列中获取总列值,c#,wpf,C#,Wpf,如何计算两个输入列的值,以便在运行时在同一数据网格中显示总计列。哪个事件是计算网格值的最佳事件。请帮帮我 XAML: 如果要使用事件计算总和,可能需要检查。然而,在WPF中更好的方法是数据绑定,因为它可以让您更好地控制何时更新数据,并且它可以更好地分离表示代码和业务代码(这就是MVVM的作用) 数据绑定意味着创建一个包含数据的对象,并将其与DataGrid连接。网格将显示对象的信息,并在用户更改网格数据时进行更新。它还自动执行必要的转换。当对象实现INotifyPropertyChanged事件
如果要使用事件计算总和,可能需要检查。然而,在WPF中更好的方法是数据绑定,因为它可以让您更好地控制何时更新数据,并且它可以更好地分离表示代码和业务代码(这就是MVVM的作用) 数据绑定意味着创建一个包含数据的对象,并将其与
DataGrid
连接。网格将显示对象的信息,并在用户更改网格数据时进行更新。它还自动执行必要的转换。当对象实现INotifyPropertyChanged
事件时,对象更改时,DataGrid
也将更新(无论是谁更改了它:具有编辑权限的用户还是程序代码中的应用程序)。在您的情况下,您将需要类似的东西:
class ExampleObject : INotifyPropertyChanged {
private int m_value1;
private int m_value2;
public int Value1 {
get {
return m_value1;
}
set {
if (value != m_value1) {
m_value1 = value;
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Value1));
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Sum));
}
}
}
public int Value2 {
get {
return m_value2;
}
set {
if (value != m_value2) {
m_value2 = value;
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Value2));
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Sum));
}
}
}
public int Sum {
get {
return m_value1 + m_value2;
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
{
PropertyChanged(this, e);
}
}
}
将数据对象绑定到网格时,它将发现它实现了
INotifyPropertyChanged
,并在编辑值时自动更新。检查如何将对象绑定到数据网格
欢迎使用StackOverflow!我们想帮助你,但你必须告诉我们更多关于你的问题,并向我们展示你已经尝试过的东西。私有无效dgSubject_CellEditEnding(对象发送方,DataGridCellEditEndingEventArgs e){}
private void dgSubject_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { }
class ExampleObject : INotifyPropertyChanged {
private int m_value1;
private int m_value2;
public int Value1 {
get {
return m_value1;
}
set {
if (value != m_value1) {
m_value1 = value;
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Value1));
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Sum));
}
}
}
public int Value2 {
get {
return m_value2;
}
set {
if (value != m_value2) {
m_value2 = value;
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Value2));
OnPropertyChanged(new PropertyChangedEventArgs(nameof(Sum));
}
}
}
public int Sum {
get {
return m_value1 + m_value2;
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
{
PropertyChanged(this, e);
}
}
}