WPF MVVM模式计算数据网格行列值
我想在用户添加行时计算datagrid列值 这是我的密码WPF MVVM模式计算数据网格行列值,wpf,Wpf,我想在用户添加行时计算datagrid列值 这是我的密码 <DataGrid HorizontalAlignment="Left" ItemsSource="{Binding SaleryDetailsCollection,NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" VerticalAlignment="Top" Width="640" Heigh
<DataGrid HorizontalAlignment="Left" ItemsSource="{Binding SaleryDetailsCollection,NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" VerticalAlignment="Top" Width="640" Height="192" LoadingRow="dataGrid_LoadingRow">
<DataGrid.Columns>
<DataGridTextColumn Header="Type" Binding="{Binding Type, Mode=TwoWay, NotifyOnTargetUpdated=True, ValidatesOnDataErrors=True}" Width="*" />
<DataGridTextColumn Header="Amount" Binding="{Binding Amount, Mode=TwoWay, NotifyOnTargetUpdated=True, ValidatesOnDataErrors=True}" Width="*" />
</DataGrid.Columns>
</DataGrid>
像这样的可观察的分配
public ObservableCollection<SaleryDetailsModel> SaleryDetailsCollection
{
get
{
return _SaleryDetailsCollection;
}
set
{
SalaryTotal = value.Sum(x => x.Amount);
_SaleryDetailsCollection = value;
NotifyPropertyChanged("SaleryDetailsCollection");
}
}
public observeCollection saleryDetails集合
{
收到
{
退货-销售详情收集;
}
设置
{
SalaryTotal=value.Sum(x=>x.Amount);
_SaleryDetailsCollection=值;
NotifyPropertyChanged(“SaleryDetailsCollection”);
}
}
此处,SalaryTotal上的total sum of Amount列not calclulat当您从
ObservableCollection
添加和删除行时,它实际上不会更改集合实例,因此您的代码不会运行。集合上有一个名为的事件,在添加或删除行时引发,您应该钩住该事件。你应该能够在那里重新计算你的总数。不过,在实际添加/删除行的事件内部进行计算可能更容易
如果SalaryTotal是一个您也要绑定的属性,那么您可能还需要调用NotifyPropertyChanged(“SalaryTotal”)代码>重新计算后,如果属性设置器中尚未进行更改,则UI将看到更改