我对 WPF 比较陌生,想知道是否有人可以帮助我。
我有一个收藏视图,其中包含一个可观察的集合列表,用于存储我的所有项目。我的数据网格的项目源是集合视图。我在datagrid XAML中有简单的分组......
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" FontWeight="Bold" Padding="3"/>
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</DataGrid.GroupStyle>
现在...添加/删除项目工作得很好,但是每当我更新/编辑项目时,组都不会更新。例如,这些项目按城市分组,如果我在一个城市名称“西雅图”下有 3 个项目,则将其中一个城市名称更改为“布鲁克林”,“布鲁克林”城市仍然在西雅图组下,直到我重新填充 observablecollection 列表.
我目前的工作是……每当一个城市发生变化时,我都会清除并重新填充我的 observablecollectionlist 以供小组更新……必须有更好的方法!
我的问题是,有什么方法可以在我更新/编辑项目时手动/动态更新数据网格组?
注意INotifyPropertyChanged 我 90% 肯定不是这里的问题,我已经尝试了与此界面的各种组合方式,每当我编辑/更新项目时,组都不会更新。但是,每当我添加一个项目时,如果它是一个新城市,就会创建一个新组,如果我删除了一个城市中的所有项目,那么该城市组也将被删除。此外,它不仅仅是特定的项目,它的任何项目列。
编辑好的,仍然没有解决方案......但我找到了另一种解决方法,这又不是最优雅的。我为城市框放置了一个事件处理程序。因此,每当更改城市时,都会调用事件处理程序,并刷新集合视图。但是,每当我添加一个项目时都会调用该事件,当我单击该项目时会调用该事件,并且每当我进行更改时都会调用该事件两次,因此它并不是很有效..仍在寻找想法。
EDIT2我现在正在研究 IEditableObject 的 BeginEdit 和 EndEdit,看看这是否能给我我需要的东西
非常感谢任何帮助,谢谢!