代码之家  ›  专栏  ›  技术社区  ›  Tony The Lion

wpf listview绑定到itemsource?

  •  16
  • Tony The Lion  · 技术社区  · 14 年前

    我有下面的listview,但它不显示实际的记录,只显示对象的名称空间。我想知道是否需要在XAML中创建列,以便它显示记录,然后将其绑定到对象的某些属性,或者这有什么问题?

    <ListView
                Name="ListCustomers"
                ItemsSource="{Binding Path=ListOfCustomers}"
                SelectedItem="{Binding Path=SelectedCustomer}"
                SelectionMode="Single"
                IsSynchronizedWithCurrentItem="True"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                MinHeight="100"
    
                ></ListView>
    

    ListOfCustomers 是一个 ObservableCollection<Customer> 类型。实际的客户确实被加载到ObservableCollection中,但它们没有显示出来。缺少什么?

    3 回复  |  直到 7 年前
        1
  •  39
  •   ChrisF toni    9 年前

    您还需要选择要显示的列:

    <ListView ItemsSource="{Binding ListOfCustomers}"
              SelectedItem="{Binding Path=SelectedCustomer}"
              ....>
      <ListView.View>
        <GridView>
          <GridViewColumn Width="140" Header="First Name"
             DisplayMemberBinding="{Binding FirstName}"  />
          <GridViewColumn Width="140" Header="Last Name"  
             DisplayMemberBinding="{Binding LastName}" />
          <GridViewColumn Width="140" Header="Email Address"
             DisplayMemberBinding="{Binding Email}" />
          ....
        </GridView>
      </ListView.View>
    </ListView>
    
        2
  •  4
  •   miensol    14 年前

    你也可以试试

    <ListView
    .
    .
    ItemTemplate="{StaticResource CustomerDataTemplate}"
    .
    .
    />
    

    其中CustomerDataTemplate是Customer类的数据模板…

        3
  •  0
  •   Gishu    14 年前

    是因为你没有设置 DataContext 具有公开 ListOfCustomers 属性(哪个返回要显示的项列表)?