我有一个带有Order属性的Page类型的集合,我将TabControl的ItemsSource属性设置为ObservableCollection。当我更改实体 的Order属性时,我需要的是相关的TabItem进入正确的位置。如何排序TabControl中的TabItems
WPF XAML:
<TabControl Grid.Row="1" ItemsSource="{Binding Pages.ListViewModels}" SelectedItem="{Binding Pages.Current}" >
<TabControl.ContentTemplate>
<DataTemplate>
<views:EditPageView />
</DataTemplate>
</TabControl.ContentTemplate>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
C#代码:
public class QuestionPageSection : INotifyPropertyChanged
{
public virtual int Id { get; set; }
public virtual string Header { get; set; }
private int _Order;
public virtual int Order
{
get
{
return _Order;
}
set
{
_Order = value;
this.RaisePropertyChanged(() => this.Order , PropertyChanged);
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
我想迫使TabControl的基于Order属性的TabItems排序。所以现在我有这些questoins:
- 有没有办法做到它声明?
- TabControl是否有一个SortColumn属性?
- TabItem是否具有TabOrder属性?
- 是否有任何类型的集合,听其孩子自动排序自己基于孩子的财产?
任何其他的想法都会变成流行的。
谢谢,我试过使用CollectionViewSource,但它不起作用。它会对列表进行排序,但不会对影响排序的更改做出响应。 – 000