gpt4 book ai didi

c# - WPF DataGrid 不会在代码隐藏更改后更新

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:40 24 4
gpt4 key购买 nike

好吧,我有一个数据网格,它使用 View 模型中下拉列表中的数据进行刷新。一切正常。我最近不得不进行涉及 DatagridColumnHeader 单击的更改。我唯一能想到的就是以这种方式处理它,那就是使用代码隐藏:(。

<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<EventSetter Event="Click" Handler="columnHeader_Click" />
</Style>
</DataGrid.Resources>

并在后面的代码中处理了该事件。现在在后面的代码中,我正在对 Datagrid 进行更改

System.Windows.Controls.Primitives.DataGridColumnHeader col = (System.Windows.Controls.Primitives.DataGridColumnHeader)sender;
ObservableCollection<tbMain> dc = (ObservableCollection<tbMain>)m_DataGrid.DataContext;
ObservableCollection<tbMain> sortedNewId = new ObservableCollection<tbMain>();

m_DataGrid.ItemsSource = sortedNewId;
m_DataGrid.Items.Refresh();

现在所有代码都可以正常工作并刷新我的 DataGrid,但我似乎已经打破了 viewmodel 和 DataGrid 之间的绑定(bind),因为现在当我从下拉列表中选择某些内容时,它不再使用新数据更新网格,直到我单击DataGrid 的 header 。伙计们有什么想法吗???

最佳答案

您似乎正在将 DataGrid 的项目源从绑定(bind)表达式(它通知数据网格源已更新)更改为对集合的简单引用,从而删除了更新逻辑。您应该更改源集合,而不是项目源。您可以使用 CollectionView 作为绑定(bind)表达式的来源,通过将 SortDescriptions 添加到 CollectionView 并在其上调用 Refresh 来进行排序

关于c# - WPF DataGrid 不会在代码隐藏更改后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com