Я работаю над приложением WPF и после MVVM. На мой взгляд, есть сетка, которая содержит разные столбцы. Один из этих столбцов - ListBox. Теперь проблема в том, что для столбца ListBox SelectedItem get отлично работает, но нет.ListBox selectedItem работать, но не работает в MVVM
Вот мой код Просмотр
<DataGrid ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Name" />
<DataGridTemplateColumn Header="Actions">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ListBox DisplayMemberPath="Name" ItemsSource="{Binding Actions}" SelectedItem="{Binding SelectedAction}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
В моей ViewModel, у меня есть Главный ViewModel класс, который содержит список элементов. Класс объекта содержит имя, список действий и выбранное действие.
public class MyViewModel : INotifyOfPropertyChanged
{
private ObservableCollection<Item> _items;
public ObservableCollection<Item> Items
{
get { return _items?? (_items= new ObservableCollection<Item>); }
}
private Item _selectedItem;
public Item SelectedItem
{
get { return _selectedItem; }
set { _selectedItem= value; }
}
}
public class Item : INotifyOfPropertyChanged
{
public string Name;
private ObservableCollection<string> _actions;
public ObservableCollection<string> Actions
{
get { return _actions?? (_actions= new ObservableCollection<string>); }
}
private string _selectedAction;
public string SelectedAction
{
get { return _selectedAction; }
set { _selectedAction = value; }
}
}
Now SelectedItem for Items list отлично работает. Но SelectedItem insde Класс Item для Actions не работает полностью. Я вставил контрольные точки на геттер и сеттер SelectedAction. получить обратные точки. Но если я выберу действие из пользовательского интерфейса, тогда установить точку останова для SelectedAction не получится.
В чем проблема.
Когда я выбираю архив проекта или восстановления проекта, законодательницей SelectedAction не дозвонились.
Примечание: Я извлекал ненужной информации, как загрузка данных в списках, реализации INotifyOfPropertyChanged и т.д.
проводке «Теперь SelectedItem для элементов списка работает отлично ...», где эта часть кода, который работает отлично? – MikroDel
@MikroDel в классе MyViewModel. SelectedItem. –
Объект DataGrid привязан к элементам (списку) в классе MyViewModel. –