XAML中的WPF ListView绑定ItemsSource

大卫

我有一个简单的XAML页面,上面定义了ListView

<ListView Margin="10" Name="lvUsers" ItemsSource="{Binding People}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
            <GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
            <GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
        </GridView>
    </ListView.View>
</ListView> 

在我后面的代码中:

public ObservableCollection<Person> People { get; set; }

public ListView()
{
    InitializeComponent();

    this.People = new ObservableCollection<Person>();
    this.People.Add(new Person() { Name = "John Doe", Age = 42, Mail = "[email protected]" });
    this.People.Add(new Person() { Name = "Jane Doe", Age = 39, Mail = "[email protected]" });
    this.People.Add(new Person() { Name = "Sammy Doe", Age = 7, Mail = "[email protected]" }); 

}   

如果我像这样在后面的代码中设置列表视图的ItemsSource

lvUsers.ItemsSource = this.People;

它可以正常工作,并且我的网格按预期显示

但是,如果我删除该行并尝试在XAML中进行绑定

<ListView Margin="10" Name="lvUsers" ItemsSource="{Binding People}">

它不再起作用。

为什么XAML中的绑定不起作用?

dkozl

如果尚未执行此操作,例如在XAML中,则需要设置DataContext绑定。另外,由于People属性未实现,因此INotifyPropertyChanged您可能要在之前InitializeComponent(至少在设置之前)创建此列表DataContext,以确保在评估绑定时列表已准备就绪。您可以在ObservableCollection以后添加内容,但是如果在此之后创建它而不通知UI,它将无法正常工作

public ListView()
{
    this.People = new ObservableCollection<Person>();
    InitializeComponent();
    this.DataContext = this;

    this.People.Add(new Person() { Name = "John Doe", Age = 42, Mail = "[email protected]" });
    this.People.Add(new Person() { Name = "Jane Doe", Age = 39, Mail = "[email protected]" });
    this.People.Add(new Person() { Name = "Sammy Doe", Age = 7, Mail = "[email protected]" }); 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF ComboBox绑定ItemsSource

来自分类Dev

当在XAML中“绑定” ItemsSource时,ListView是空白的,但是如果直接设置属性,则会填充ListView?

来自分类Dev

XAML中的WPF文本块绑定

来自分类Dev

使用WPF在TextBlock中对ItemsControl的ItemsSource的绑定计数

来自分类Dev

如何在WPF中将ItemsSource与ObservableCollection绑定

来自分类Dev

WPF DataGrid 绑定到 ItemsSource 项属性

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

XAML ListView Gridview绑定

来自分类Dev

WPF XAML数据绑定

来自分类Dev

WPF-ReSharper无法识别XAML中的继承的绑定范围

来自分类Dev

WPF元素绑定在XAML中不起作用

来自分类Dev

WPF窗口未使用XAML中的绑定更新

来自分类Dev

在我的WPF XAML密钥绑定中引用'='密钥

来自分类Dev

在XAML WPF中为ListView项设置工具提示

来自分类Dev

如何删除XAML(WPF)中的Listview中分隔标题的边框?

来自分类Dev

在代码隐藏中更改DataGrid ItemsSource绑定

来自分类Dev

从面板中移除子项,绑定到 ItemsSource

来自分类Dev

SelectedItem在WPF中的ListView中未绑定

来自分类Dev

在ListView数据模板WPF中绑定UserControl

来自分类Dev

在WPF的ListView中,SelectedItem不绑定

来自分类Dev

来自ItemsSource的数据-ListView中的文本包装

来自分类Dev

Listview列的XAML绑定宽度

来自分类Dev

XAML WPF的绑定/引用方法

来自分类Dev

WPF数据绑定到XAML

来自分类Dev

WPF XAML绑定不会更新

来自分类Dev

WPF列表框将ItemsSource与MVVM-light绑定

来自分类Dev

在 XAML 中对绑定到 ObservableCollection 的 ListView 进行排序

来自分类Dev

如何将多个项目添加到ItemsSource WPF多个集合绑定中?

Related 相关文章

热门标签

归档