2011-06-18 69 views
3

我從這個術語「雙向」明白的是,如果在一端改變任何價值,就應該直接得到反映到另一端,例如我有這樣的組合框綁定ComboBox雙向模式不起作用?

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

現在我希望的SelectedValue到是nothing/null,我只是更新我的代碼/ viewModel中的CarModel屬性爲「」,但沒有工作,我在這裏錯過了什麼?

這裏是我的財產

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

     } 
    } 

感謝

+0

什麼是CarModel的類型? –

+0

它是字符串類型 – Musaab

回答

0

的PROPERT carModelNames應該是集合類型要綁定到的combobox ..並且必須在setter中使用OnPropertyChange ...並且最好使用selet edItem而不是選定的值。

+0

carModelNames是一個ObservableCollection ,我將其更改爲SelectedItem,請參閱我在第一篇文章中的編輯以查看我綁定到的屬性 – Musaab

+0

@Musab:您的屬性名稱爲GlassType,並且所選值屬性你在xaml中給出的是CarModel,它應該是GlassType .... – Syeda

+0

是的,我只是複製了錯誤的屬性,在第二次修復時,它可能被認爲是一個錯字錯誤 – Musaab

1

如果在代碼中更改了SelectedValue,則只有在新值包含在ItemsSource中時,控件纔會更新。所以CarModelNames的集合必須包含string.Empty或它不會是一個有效的選擇。