我想在用户添加行
时计算datagrid列值这是我的代码
<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>
像这样的Observablecolloction
public ObservableCollection<SaleryDetailsModel> SaleryDetailsCollection
{
get
{
return _SaleryDetailsCollection;
}
set
{
SalaryTotal = value.Sum(x => x.Amount);
_SaleryDetailsCollection = value;
NotifyPropertyChanged("SaleryDetailsCollection");
}
}
此处金额列的总和不是SalaryTotal上的calclulat
答案 0 :(得分:0)
当您从ObservableCollection
添加和删除行时,它实际上并未更改Collection实例,因此您的代码无法运行。名为CollectionChanged的集合上有一个事件,当您添加或删除要挂钩的行时,该事件会被引发。您应该可以在那里重新计算总数。在实际添加/删除行的事件中进行数学计算可能更容易。
如果SalaryTotal是您还具有约束力的属性,则可能还需要在重新计算后调用NotifyPropertyChanged("SalaryTotal ");
以获取用户界面以查看更改(如果尚未在您的属性设置器中完成)