2013-04-11 52 views
1

我的問題是我想在我的ViewModel中調用'SelectionChanged'事件。MVVM SelectionChanged Combobox不會調用'Set'

我有一個組合框(這裏稱爲ListPicker,這是一個手機應用程序):

<tool:ListPicker Name="txt_LZZ" 
    ItemsSource="{Binding ZZR}" SelectedItem="{Binding MySelectedItem}" /> 

我的視圖模型屬性如下:

private List<string> _zzr; 
    public List<string> ZZR 
    { 
     get 
     { 
      _zzr = new List<string>(); 
      _zzr.Add("Jahr"); 
      _zzr.Add("Monat"); 
      _zzr.Add("Woche"); 
      _zzr.Add("Tag"); 
      return _zzr; 
     } 
     set 
     { 
      _zzr = value; 
      RaisePropertyChanged(() => ZZR); 
     } 
    } 

    private string _mySelectedItem; 
    public string MySelectedItem 
    { 
     get 
     { 
      return _mySelectedItem; 
     } 
     set 
     { 
      if (value == _mySelectedItem) 
       return; 
      _mySelectedItem = value; 
      RaisePropertyChanged(() => MySelectedItem); 
      GetValues(); 
     } 
    } 

程序僅調用get方法一次,而_mySelectedItem的值爲'null'。我想要的是,當我更改Combobox(ListPicker)中的SelectedItem時,ViewModel必須調用GetValues方法,該方法位於MySelectedItem的設置器中。問題: - > ViewModel不會調用setter。爲什麼?

回答

1

嘗試將結合TwoWay的模式:

<tool:ListPicker Name="txt_LZZ" 
    ItemsSource="{Binding ZZR}" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" /> 

我也不會實例化值集合中的吸氣劑,而是讓二傳手私人和值分配給該屬性的視圖模型(例如構造函數或激活視圖模型時)。

+0

我已經設置了ItemsSource,因爲我認爲這不是必要的,我不想專注於此......我將編輯我的第一篇文章。 – Rudi 2013-04-11 09:57:13

+0

答覆已更新。 – devdigital 2013-04-11 10:12:01

+0

謝謝! :)問題不是設置'Mode = TwoWay'。是的,我知道我不應該在getter中設置值,但它僅用於測試目的。 – Rudi 2013-04-11 10:18:00

相關問題