1

TabControlそれぞれTabItemがを表示する場所がありますListView。リストは各タブで同じですが、選択したタブに応じて異なるフィールドで並べ替えられます。

だから、私はそれぞれが異なるものを含むことを望まないTabItemListView

<TabControl>

    <TabItem>
        <ListView/>
    </TabItem>

    <TabItem>
        <ListView/>
    </TabItem>

</TabControl>

どうすればこれを達成できますか?

4

1 に答える 1

2

早くて簡単。現在のコードをそのままにします。次に、ViewModelにリストを1つだけ設定すると、同じリストを返すが希望の順序で並べ替えられる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>

ViewModel:

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 に答える