1

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

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

<TabControl>

    <TabItem>
        <ListView/>
    </TabItem>

    <TabItem>
        <ListView/>
    </TabItem>

</TabControl>

我怎样才能做到这一点?

4

1 回答 1

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....
    }
}
于 2012-09-14T17:30:10.207 回答