-1
こんにちは私はカスタムオブジェクトのリストをWPFのListBoxにバインドしたいと考えています。WpfカスタムオブジェクトのListBoxへのバインドリスト
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>
そして、Userクラス: 私は次のコードを持っている
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;
}
}
最初のリストは、新しいアイテムがありますがあれば、期待通りに表示されますリストに追加された(または削除された)リストは更新されていません。
「ObservableCollection users」を使用してください。あなたはうまくいくはずです。 –
Sinatr
リストは動的か静的ですか? –
なぜ 'this.listBox.DataContext = users;'?それはどんな目的にも役立たない。ドキュメンテーションを読んで10分であれば、ランダムなプロパティに任意の値を割り当てるのは2日以上です。 –