簡體   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