CollectionViewSource
をWPFアプリケーションで2つチェーンしたいと思います。 次のようなことをする方法はありますか?連鎖コレクションビューソース
MainWindow.xaml.cs:
using System.Collections.Generic;
using System.Linq;
using System.Windows;
namespace ChainingCollectionViewSource
{
public partial class MainWindow : Window
{
public IEnumerable<int> Items => Enumerable.Range(0, 10);
public MainWindow()
{
DataContext = this;
InitializeComponent();
}
}
}
MainWindow.xaml:
<Window x:Class="ChainingCollectionViewSource.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<CollectionViewSource x:Key="ItemsViewA"
Source="{Binding Items}" />
<CollectionViewSource x:Key="ItemsViewB"
Source="{Binding Source={StaticResource ItemsViewA}}" />
</Window.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource ItemsViewB}}" />
</Window>
あなたがやろうとしている理由を説明してもらえこの?おそらくもっと良い方法がありますか? – Kelly
これは基本的により複雑なオブジェクトツリーの抽出です。 CollectionViewSourceを介してデータをフィルタリングし、コントロールBのItemsSourceに渡すコントロールAを想像してください。コントロールBが独自のCollectionViewSourceにItemsSourceをバインドして、独自のフィルタリング、グループ化または並べ替えを実行するまで動作します。 –