如何在mvvm中将自动完成框与模型绑定?

Man*_*noj 2 mvvm wpftoolkit

我公开了一个集合,并将其绑定到autocompletebox的itemsource,但是在自动完成框中选择或更改文本不会像文本框或标签一样更新模型!

视图模型:

public ObservableCollection<String> SymptomsDb { get; private set; }

private String symptom;

public String Symptom
{
    get { return symptom; }
    set
    {
        symptom = value;
        RaisePropertyChanged(() => this.Symptom);
    }
}

public AnalysisViewModel()
{
    List<String> s = new List<String>();
    s.Add("test");
    SymptomsDb = new ObservableCollection<String>(s);
}
Run Code Online (Sandbox Code Playgroud)

视图:

<controls:AutoCompleteBox 
    ItemsSource="{Binding SymptomsDb}" 
    SelectedItem="{Binding Symptom}" 
    Text="{Binding Symptom}" 
    IsTextCompletionEnabled="True" 
    FilterMode="Contains"/>
Run Code Online (Sandbox Code Playgroud)

Mik*_*chs 8

要从用户界面更改回viewmodel,您将始终需要绑定属性TwoWay(默认情况下,某些属性如TextBox.TextProperty是TwoWay ):

<controls:AutoCompleteBox 
    ItemsSource="{Binding SymptomsDb}" 
    SelectedItem="{Binding Symptom, Mode=TwoWay}" 
    Text="{Binding Symptom}" 
    IsTextCompletionEnabled="True" 
    FilterMode="Contains"/>
Run Code Online (Sandbox Code Playgroud)