我有一个类似的类:
public class Example
{
public Example()
{
}
public int Count1 { get; set; }
public int Count2 { get; set; }
public int Count3 { get { return Count1 + Count2 ; } }
}
和带有 List<Example>
的datagrid作为itemporce:
<DataGrid x:Name="grdExample" AutoGenerateColumns="False" CanUserAddRows="False" SelectionMode="Single" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Count1 , Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Header="Count1" />
<DataGridTextColumn Binding="{Binding Count1 , Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Header="Count1" />
<DataGridTextColumn Binding="{Binding Count2 , Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Header="Count2" />
<DataGridTextColumn Binding="{Binding Count3}" Header="Count3" />
</DataGrid.Columns>
</DataGrid>
我想要编辑Count1或Count2列时,Count3也更新。
使用此代码,仅更改了第二列(那是同一属性,然后是第一个coumn(。
我试图在SelectedCellschanged事件中刷新网格项目。但是导致stackoverflow,一旦事件在每个刷新上不断变化。
我想念什么?我查找解决方案,但没有成功。
ps:debbuging我可以看到这些值在grdexample.items
在模型类Example
中实现INotifyPropertyChanged
接口。每当在UI中更改该值时,模型将获得通知,并且在您的模型类中,您都可以在Count1
&amp;时更新Count3
值。Count2
更改。
此链接可以帮助您完成INotifyPropertyChanged
接口实现:https://learn.microsoft.com/en-us/dotnet/framework/winforms/how-to-to-mimplement-the-implement-the-inotifypropertypropertychanged-intered-interfce--interface