WPF结合自定义对象列表框
问题描述:
的列表你好,我想自定义对象的列表绑定到WPF列表框。 我有下面的代码:WPF结合自定义对象列表框
private List<User> users = new List<User>();
public MainWindow()
{
InitializeComponent();
this.users = User.GetAllUsersFromFile();
this.listBox.DataContext = users;
this.listBox.ItemsSource = users;
}
和XML:
<ListBox x:Name="listBox" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
和用户等级:
private string name;
private byte[] avatar;
public string Name
{
get
{
return this.name;
}
set
{
if (value.Any(c => c == ' '))
throw new Exception("Invalid name. (It cannot contain spaces)");
this.name = value;
}
}
public byte[] Avatar
{
get
{
return this.avatar;
}
set
{
this.avatar = value;
}
}
最初的名单显示不如预期,但如果新项目添加到列表(或删除)列表不更新。
答
正如Sinatr指出的那样,我使用了ObservableCollection,它按预期工作。 谢谢。
使用'ObservableCollection用户',你应该没问题。 –
Sinatr
是List动态或静态? –
为什么'this.listBox.DataContext =用户;'?这没有任何用处。十分钟的阅读文档可以让你将任意值赋予随机属性两天以上。 –