在PropertyChange上的ItemsControl中为派生的ObservableCollection <t>重新排序呈现的项目</t>

时间:2011-05-19 17:45:52

标签: c# wpf data-binding itemscontrol

我有一个ItemsControl绑定到一个已排序的(通过CollectionViewSource)派生的ObservableCollection视图模型。在我的派生集合类中,我正在我的视图模型上处理PropertyChanged。当某个属性(Order)发生变化时,我需要渲染控件以反映新的已排序集合。

我理解,在我处理PropertyChanged时,我可以使用指定的Reset操作调用OnCollectionChanged;然而,这会导致失去对控制的关注,这对我的情况来说是不可取的。

无论如何,我可以处理更改并平滑过渡,光标保持原位(或者在标签的情况下,移动到下一个适当的字段)。

1 个答案:

答案 0 :(得分:1)

Order属性的变化是什么?

也许您可以考虑重新安排ItemsControl而不是排序和刷新源代码。

我过去用TabControl做过这个。当用户将选项卡拖放到新位置时,它会从TabControl中删除实际的TabItem并将其插入新位置。 SelectedTab从未改变过,所以我不必担心焦点变化。