Режим связывания ComboBox не работает? - PullRequest
3 голосов
/ 18 июня 2011

что я понимаю из этого термина "TwoWay", так это то, что если какое-либо значение на одном конце изменяется, оно должно непосредственно отражаться на другом конце, например, у меня есть этот ComboBox

<ComboBox SelectedValue="{Binding CarModel,Mode=TwoWay,IsAsync=True}" ItemsSource="{Binding carModelNames}" />

, теперь я хотелSelectedValue, чтобы быть ничем / нулем, я только что обновил свое свойство CarModel в code / viewModel, чтобы быть "", но это не сработало, я что-то здесь упускаю ??

вот мое свойство

public String CarModel
    {
        get
        {
            return _CarModel;
        }
        set
        {
            if (_CarModel != value)
            {
                _CarModel = value;
                OnPropertyChanged("CarModel");
            }

        }
    }

спасибо

Ответы [ 3 ]

3 голосов
/ 18 июня 2011

смотрите здесь ComboBox.SelectedValue не обновляется из источника привязки

Вы можете использовать SelectedIndex или SelectedItem вместо

1 голос
/ 29 июня 2011

Если SelectedValue изменяется в Code, элемент управления обновляется только в том случае, если новое значение содержится в ItemsSource. Таким образом, коллекция carModelNames должна содержать string.Empty, иначе это будет неправильный выбор.

0 голосов
/ 18 июня 2011

Свойство carModelNames должно относиться к коллекции типов, которую вы привязываете к выпадающему списку .. И должно использовать OnPropertyChange в установщике ... И было бы лучше использовать seletedItem вместо выбранного значения ..

...