TabControl与ListView

时间:2012-09-14 17:20:48

标签: c# wpf listview tabcontrol

我有一个TabControl,其中每个TabItem都显示ListView。 每个选项卡的列表都相同,但根据所选的选项卡,它按不同的字段排序。

所以,我不希望每个TabItem包含不同的ListView

<TabControl>

    <TabItem>
        <ListView/>
    </TabItem>

    <TabItem>
        <ListView/>
    </TabItem>

</TabControl>

我该如何做到这一点?

1 个答案:

答案 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....
    }
}