Я играю с MVVM и привязкой. Более конкретно ListBox, который показывает коллекцию объектов:WPF привязка списка - SelectedItem остается null
<ListBox ItemsSource="{Binding Scouts}" SelectedItem="{Binding SelectedScout, Mode=TwoWay}/>
В моих ViewModel это выглядит следующим образом:
private ObservableCollection<Scout> scouts;
private Scout selectedScout;
public Scout SelectedScout
{
get { return selectedScout; }
set
{
OnPropertyChanged("SelectedScout");
value = selectedScout;
}
}
public ObservableCollection<Scout> Scouts
{
get { return scouts; }
set
{
OnPropertyChanged("Scouts");
scouts = value;
}
}
Теперь ListBox показывает элементы в коллекции просто прекрасно, но то, что я хочу для этого нужно щелкнуть элемент в поле, а затем показать дополнительную информацию об этом элементе в TextBox. Я полагал, что я связать в ListBox»свойство SelectedItem к выбранному-свойства в моем ViewModel (как показано выше) и связать свойство с TextBox как так:
<TextBox Text="{Binding SelectedScout.Id}"/>
Но это не работает. TextBox остается пустым, когда я выбираю элемент в ListBox, и я полагаю, что это связано с тем, что мой SelectedScout
свойство remians null.
Я уже некоторое время борюсь с этой проблемой, и я просто не могу найти решение. Я не знаю, чего мне не хватает.
Заранее благодарю вас за помощь.
** EDIT: Я решил проблему. Спасибо за ваши ответы, но ошибка была в этой строке:
public Scout SelectedScout
{
get { return selectedScout; }
set
{
OnPropertyChanged("SelectedScout");
*value = selectedScout;*
}
}
Где он должен, конечно, быть:
selectedScout = value;
Я чувствую себя очень глупо Теперь. Спасибо за помощь.
**