繁体   English   中英

如何防止datagrid刷新数据?

[英]How to prevent datagrid from refreshing data?

这是场景:

  • 两个工具包数据网格,并排
  • 网格 A 是只读的,不能更改
  • 网格 B 的内容可以使用其下方的保存按钮进行更改和保存

我需要网格 A 保持不变,直到用户单击保存按钮,无论网格 B 可能有也可能没有任何更改。 当我绑定到下面的属性时,当 Grid B 更改时,两个网格都会更改。 我想避免这种情况。

这样做的最佳方法是什么? 两个网格当前都绑定到以下属性:

    public EntitySet<SomeEntity> SomeEntities
    {
        get { return _entity; }
        set
        {
            if (_entity != value)
            {
                _entity= value;
                OnPropertyChanged("SomePropertyChanged");
            }
        }
    }

将网格 A 的绑定设置为 OneTime。

IE

Text="{Binding Path=Age, Mode=OneTime}" 

也许不是完全切换网格绑定到的 SomeEntities 集合,而是使用 ObservableCollection,然后在 ObservableCollection 中逐项更新。 然后使用 Derek 提到的 Mode=OneTime。

您可以创建两个 EntitySet,每个 DataGrid 一个。 保存后,您必须更新绑定到只读 DataGrid 的集合。

通过使用带有 OneTime 绑定的 DataGridTemplateColumn 使其工作。 例如,

<sdk:DataGridTemplateColumn>
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
             <TextBlock Text="{Binding Enabled, Mode=OneTime}"></TextBlock> 
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM