Как выполнить привязку SelectValue к MVVM в проекте в UWP?

Я пытался зафиксировать SelectValue comboBox в ViewModel, но не смог.

это мой код

<ComboBox SelectedValue="{Binding TipoDoc, Mode=TwoWay}"/>

это ViewModel

private string tipodoc; 
public string TipoDoc 
{ 
    get => tipodoc; 
    set 
    { 
        tipodoc = value; 
        RaisePropertyChanged();
     } 
} 

Я не мог зафиксировать значение comboBox.

Что я делаю неправильно? Спасибо


person Wilmilcard    schedule 21.09.2018    source источник
comment
Вы действительно должны прочитать о привязке MVVM и NotifyPropertyChanged есть много руководств, однако это может помочь вам заголовок stackoverflow.com/questions/19632270/   -  person TheGeneral    schedule 22.09.2018
comment
Вы установили ItemsSource в ComboBox?..   -  person Ashiq Hassan    schedule 22.09.2018


Ответы (1)


Предложение @Ashiq было правильным. Вам нужно установить ItemsSource для ComboBox.

Я сделал образец кода для вашей справки:

<Page.DataContext>
    <local:ViewModel></local:ViewModel>
</Page.DataContext>

<Grid>
    <ComboBox ItemsSource="{Binding source}" SelectedValue="{Binding TipoDoc, Mode=TwoWay}"/>
</Grid>
public class ViewModel : INotifyPropertyChanged
{
    private string tipodoc;
    public string TipoDoc
    {
        get => tipodoc;
        set
        {
            tipodoc = value;
            RaisePropertyChanged("TipoDoc");
        }
    }

    public ObservableCollection<string> source { get; set; }

    public ViewModel()
    {
        source = new ObservableCollection<string>();
        source.Add("item1");
        source.Add("item2");
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string PropertyName)
    {
        if (PropertyChanged!= null)
        {
            PropertyChanged(this,new PropertyChangedEventArgs(PropertyName));
        }
    }
}

Затем при выборе одного элемента значение свойства TipoDoc будет изменено. введите здесь описание изображения

person Xie Steven    schedule 24.09.2018