Я новичок в WPF/MVVM и у меня есть два ListBox с двумя кнопками: одна для копирования выбранных элементов из левого списка в правый и обратно с помощью второй кнопки.
При запуске левый ListBox правильно заполняется данными из хранилища данных, когда я выбираю некоторые элементы и нажимаю кнопку btn_add_symbol_Click, метод AddSelectedSymbol выполняется, как и ожидалось, OnPropertyChanged также и метод получения WidgetSymbolsSelected< /code> (я полагаю, из правого ListBox) вызывается, возвращая правильный обновленный CurrentWidget.Symbols. Проблема в том, что правый элемент ListBox, lst_SelectedSymbols, всегда пуст. Что происходит? Спасибо.
XAML:
ВМ:
public IEnumerable AvailableSymbols
{
get { return DataManager.AvailableSymbols; }
}
public IEnumerable WidgetSymbolsSelected
{
get { return CurrentWidget.Symbols; }
}
public void AddSelectedSymbol(string symbol)
{
if (!CurrentWidget.Symbols.Contains(symbol)) {
CurrentWidget.Symbols.Add(symbol);
OnPropertyChanged("WidgetSymbolsSelected");
}
}
CodeBehind:
private void btn_add_symbol_Click(object sender, RoutedEventArgs e)
{
var ViewModel = (WidgetEditorViewModel)this.DataContext;
foreach (var Item in lst_AvailableSymbols.SelectedItems)
{
ViewModel.AddSelectedSymbol(Item.ToString());
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... codebehind