如何防止datagrid刷新数据?
场景如下:
- 两个工具包数据网格,并排
- 网格 A 是只读的,无法更改
- 网格 B 的内容可以使用其下方的保存按钮进行更改和保存
我需要网格 A 保持不变,直到用户单击保存按钮,无论网格 B 可能有也可能没有任何更改。当我绑定到下面的属性时,当网格 B 更改时,两个网格都会更改。我想避免这种情况。
执行此操作的最佳方法是什么?两个网格当前都绑定到以下属性:
public EntitySet<SomeEntity> SomeEntities
{
get { return _entity; }
set
{
if (_entity != value)
{
_entity= value;
OnPropertyChanged("SomePropertyChanged");
}
}
}
Here's the scenario:
- Two toolkit data grids, side-by-side
- Grid A is readonly and cannot be changed
- Grid B's contents can be changed and saved using a save button under it
I need Grid A to stay the same until the user clicks the save button, regardless of any changes Grid B may or may not have. When I bind to the property below both grids change when Grid B changes. I want to avoid this.
What's the best approach to do this? Both grids are currently binding to the below property:
public EntitySet<SomeEntity> SomeEntities
{
get { return _entity; }
set
{
if (_entity != value)
{
_entity= value;
OnPropertyChanged("SomePropertyChanged");
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
将网格 A 的绑定设置为 OneTime。
IE
Set the binding for Grid A to OneTime.
i.e.
也许不是完全切换网格绑定到的 SomeEntities 集合,而是使用 ObservableCollection,然后在 ObservableCollection 中基于每个项目进行更新。然后使用 Derek 提到的 Mode=OneTime。
Maybe instead of completely switching out the collection of SomeEntities that the Grid is binding to, maybe use an ObservableCollection, then update on a per item basis in the ObservableCollection. Then use the Mode=OneTime that Derek mentions.
您可以创建两个 EntitySet,每个 DataGrid 一个。保存后,您必须更新绑定到只读 DataGrid 的集。
You can create two EntitySets, one for each DataGrid. After saving, you have to update set binded to read-only DataGrid.
通过使用具有 OneTime 绑定的 DataGridTemplateColumn 使其正常工作。例如,
Got it to work by using a DataGridTemplateColumn with OneTime binding. For example,