如何防止datagrid刷新数据?

发布于 2024-11-09 16:26:11 字数 544 浏览 0 评论 0原文

场景如下:

  • 两个工具包数据网格,并排
  • 网格 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

丢了幸福的猪 2024-11-16 16:26:11

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

IE

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

Set the binding for Grid A to OneTime.

i.e.

Text="{Binding Path=Age, Mode=OneTime}" 
乄_柒ぐ汐 2024-11-16 16:26:11

也许不是完全切换网格绑定到的 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.

软糖 2024-11-16 16:26:11

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

You can create two EntitySets, one for each DataGrid. After saving, you have to update set binded to read-only DataGrid.

歌枕肩 2024-11-16 16:26:11

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

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

Got it to work by using a DataGridTemplateColumn with OneTime binding. For example,

<sdk:DataGridTemplateColumn>
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
             <TextBlock Text="{Binding Enabled, Mode=OneTime}"></TextBlock> 
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文