我有一个TabControl
,其中每个TabItem
都显示ListView
。
每个选项卡的列表都相同,但根据所选的选项卡,它按不同的字段排序。
所以,我不希望每个TabItem
包含不同的ListView
:
<TabControl>
<TabItem>
<ListView/>
</TabItem>
<TabItem>
<ListView/>
</TabItem>
</TabControl>
我该如何做到这一点?
答案 0 :(得分:2)
快速而简单。让代码就像现在这样。然后在您的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....
}
}