WPF ListView绑定多个源

时间:2014-06-09 23:21:20

标签: c# wpf xaml listview

我有一个ListView,我希望显示多个相同类型的集合(与我发现的关于多重绑定的所有其他主题相反),甚至更好 - 一个不可用的项目,类似于&# 34;默认项目",作为ListView中的第一项和相同类型的多个连接集合。例如,对于一个集合和一个项目:

<ListView ItemsSource="{Binding People}">
        <ListView.ItemTemplate>
              <DataTemplate>
                 <WrapPanel>
                     <TextBlock Text="{Binding Name}" />
                </WrapPanel>
               </DataTemplate>
        </ListView.ItemTemplate>
        <ListViewItem ItemsSource="{Binding PatientZero}">
              <WrapPanel>
                 <TextBlock Text="{Binding Name}" />
              </WrapPanel>
        </ListViewItem>
</ListView>

public class Person
{
    public string Name { get; set; }
    public Person(){}
}

...和代码

ObservableCollection<Person> _people =
       new ObservableCollection<Person>();

public ObservableCollection<Person> People
       { get { return _people; } }

Person PatientZero { get { return _patientZero ; } }
Person _patientZero = new Person { Name="Unknown"}
显然,这不会工作,因为它不会通过xaml解析器(没有提到一些语法,但这是一个例子)。当然,我可以定期收集所有收藏品并检查编辑的物品是不是第一个,但我很好奇这是否可以解决。
有谁想实现这个想法?

1 个答案:

答案 0 :(得分:1)

不确定这是否是您所需要的。但你的问题描述可以更清楚。

ObservableCollection<ObservableCollection<Person>> PeopleLists{get;set;}

在XAML中绑定

<ListView ItemsSource="{Binding PeopleLists}">
    <ListView.ItemTemplate>
          <DataTemplate>
             <ListView ItemsSource={Binding}>
                 <ListView.ItemTemplate>
                     <DataTemplate>
                         <WrapPanel>
                            <TextBlock Text="{Binding Name}" />
                         </WrapPanel>
                     </DataTemplate>
                 </ListView.ItemTemplate>
             </ListView>
           </DataTemplate>
    </ListView.ItemTemplate>
</ListView>