以下是该方案:
我需要网格A保持不变,直到用户点击保存按钮,无论网格B可能有也可能没有任何更改。当我绑定到下面的属性时,两个网格都会在网格B更改时更改。我想避免这种情况。
这样做的最佳方法是什么?这两个网格目前都绑定到以下属性:
public EntitySet<SomeEntity> SomeEntities
{
get { return _entity; }
set
{
if (_entity != value)
{
_entity= value;
OnPropertyChanged("SomePropertyChanged");
}
}
}
答案 0 :(得分:2)
将网格A的绑定设置为OneTime。
即
Text="{Binding Path=Age, Mode=OneTime}"
答案 1 :(得分:2)
也许不是完全切换Grid绑定的SomeEntities集合,而是使用ObservableCollection,然后在ObservableCollection中基于每个项目进行更新。然后使用Derek提到的Mode = OneTime。
答案 2 :(得分:0)
您可以创建两个EntitySet,每个DataGrid一个。保存后,您必须将set binded更新为只读DataGrid。
答案 3 :(得分:0)
通过使用带有OneTime绑定的DataGridTemplateColumn来实现它。例如,
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Enabled, Mode=OneTime}"></TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>