Я бы хотел связать два приложения CollectionViewSource
s в приложении WPF. Есть ли способ сделать следующее:Chaining CollectionViewSource
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
Это в основном экстракт более сложного дерева объектов. Представьте себе элемент управления A, который фильтрует свои данные через CollectionViewSource и передает его в ItemsSource элемента управления B. Он работает, пока управление B не попытается выполнить собственную фильтрацию, группировку или сортировку, привязывая свой ItemsSource к собственному CollectionViewSource. –