CollectionViewSource для привязки к свойству в синглтоне

У меня такой класс синглтон

public class Sample
{
    private static readonly Lazy<Sample> lazy =
    new Lazy<Sample>(() => new Sample());

    private ObservableCollection<SampleGroup> _groups;

    public ObservableCollection<SampleGroup> Groups
    {
        get { return _groups; }
    }

}

Я связываю Groups собственность на ListView этим,

 <Window.Resources>
    <!-- Data Source For Binding-->
    <CollectionViewSource x:Key="SampleGroups" Source="{Binding Groups}" />
 </Window.Resources>
 ...
 <ListView x:Name="GroupNameListView" 
                                  ItemsSource="{Binding Source={StaticResource SampleGroups}}"
                                  SelectedIndex="0"  SelectionChanged="GroupNameListView_SelectionChanged" >
  ....

Для того, чтобы сделать эту работу, мне нужно поставить this.DataContext= Sample.Instance в коде позади.

Возможно ли, что я могу указать это DataContext в <Window.Resources> часть, потому что я хотел бы добавить еще CollectionViewSource который имеет другой DataContext,

1 ответ

Решение

Вы можете напрямую связать одноэлементный класс, как указано ниже.

<CollectionViewSource x:Key="SampleGroups" Source="{Binding Source={x:Static local:Sample.Instance}, Path=Groups}" />
Другие вопросы по тегам