如何防止datagrid刷新数据?

时间:2011-05-26 21:26:21

标签: c# silverlight silverlight-4.0

以下是该方案:

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

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

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

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

4 个答案:

答案 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>