ListBoxにBindingする方法
色々と嵌まってて最後感動的な解決が出来たのでメモ
やりたいことはListBoxのItemsSourceをBindingしてViewModelでListBoxのアイテムを管理しようってことです。
当初IEbumable型をBindingしようとしてたのですが、どうもうまくいかない。
デバッグ実行してみるとプロパティのsetterがうまく呼ばれてなかったんですね。
List<string> _listboxitem;
//これを呼ぶも
private void Exec(object o)
{
if (text != null)
{
listboxitem.Add(text);
}
}
public ObservableCollection<string> listboxitem
{
get
{
return _listboxitem;
}
set
{//なぜかここにこない
_listboxitem = value;
NotifyPropertyChanged("listboxitem");
}
}
で、「ListBox Binding」でgoogle先生から検索してみると、
ListBoxのItemsSourceにBindingするにはObservableCollection<T>型のプロパティにBindingしなきゃだめだってわかったので、以下のように修正
ObservableCollection<string> _listboxitem;
public ObservableCollection<string> listboxitem
{
get
{
return _listboxitem;
}
set
{
_listboxitem = value;
NotifyPropertyChanged("listboxitem");
}
}
無事動きました。
いや―長かったよー。