快捷方便。让代码保持现在的样子。然后在您的 ViewModel 上只有一个列表,您可以有 N 个不同的只读属性(其中 N 是选项卡的数量),它们将返回相同的列表,但按您想要的顺序排序。
事情是:
我不希望每个 TabItem 包含不同的 ListView
但这正是你正在做的。在每个 TabItem 中有一个排序不同的列表。
例子
看法:
<TabControl>
<TabItem>
<ListView ItemsSource="{Binding SortedByX}" />
</TabItem>
<TabItem>
<ListView ItemsSource="{Binding SortedByY}" />
</TabItem>
<TabItem>
<ListView ItemsSource="{Binding SortedByZ}" />
</TabItem>
</TabControl>
视图模型:
public List<The type of your list items> List { get; set; }
public List<The type of your list items> SortedByX
{
get
{
return List.Sort(iComparer);
}
}
// Or using LINQ
public List<The type of your list items> SortedByY
{
get
{
return List.OrderBy....
}
}