Корректное обновление ComboBox выбранного элемента в MVVM - PullRequest
2 голосов
/ 19 сентября 2019

Учитывая приведенный ниже код ViewModel - cmbxFields привязан к ComboBox ItemSource, SelectedcmbxField привязан к выбранному элементу - выбранный элемент ComboBox не обновляется, пока я не уйду назад и не вернусь к представлению (Page).Как правильно сделать это в MVVM для мгновенного обновления ComboBox?

public ObservableCollection<string> cmbxFields { get; set; } = new ObservableCollection<string>();
public string SelectedCmbxField { get; set; }

private async Task LoadWorkspaceFields()
{
    cmbxFields.Clear();
    foreach (var curField in availableFields.OrderBy(x =>x.Name).Select(x => x.Name))
    {
        cmbxFields.Add(curField);
    }

    SelectedCmbxField = cmbxFields.FirstOrDefault(x => x.StartsWith("Some Text"));
}

Я попробовал следующее на своем ComboBox XAML-

SelectedItem="{Binding SelectedcmbxField, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

1 Ответ

1 голос
/ 19 сентября 2019

Простой пример реализации INotifyPropertyChanged:

public class MyClass : INotifyPropertyChanged
{
  private int intValue;

  public event PropertyChangedEventHandler PropertyChanged;

  public int MyIntValue
  {
    get => intValue;
    set
    {
      intValue = value;
       PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MyIntValue)));
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...