2014-09-06 40 views
1

我有List<string> MyList有4个值。这些显示在ComboBox控件中。绑定在我的MVVM WPF项目中完美运行。SelectedItem和SelectedValue返回错误的项目

我也有一个string SelectedMyList,它绑定到我的XAML,应该显示选定的项目。我的问题是,无论使用SelectedItemSelectedValue,它总是通过在MYLIST

private MyClass()//constructor 
{ 
    MyList = new List<string>() {"Hi", "Bye", "Hello", "See ya"}; 
} 

private string _selectedMyList; 
public string SelectedMyList 
{ 
    get 
    { 
     return this._selectedMyList; 
    } 
    set 
    { 
     //value is always Hi 
     if (this._selectedMyList== value) 
      return; 

     this._selectedMyList= value; 
     OnPropertyChanged("SelectedMyList"); 
    } 
} 

private List<string> _myList; 
public List<string> MyList 
{ 
    get 
    { 
     return this._myList; 
    } 
    set 
    { 
     if (this._myList== value) 
      return; 

     this._myList= value; 
     OnPropertyChanged("MyList"); 
    } 
} 

第一项,我的XAML

<ComboBox ItemsSource="{Binding MyList}" SelectedValue="{Binding SelectedMyList, UpdateSourceTrigger=PropertyChanged}" /> 

有没有错误/绑定错误等的输出窗口。

为什么SelectedItem/SelectedValue不能通过我认为从ComboBox中选择的项目?

+0

你有没有在XAML或代码背后设置'DataContext'? – 2014-09-06 14:22:37

+0

@YuliamChandra,如果我没有设置DataContext,那么MyList将如何绑定? – MyDaftQuestions 2014-09-06 14:32:58

回答

0

这对我有用。

private string _selectedMyList; 
    public string SelectedMyList 
    { 
     get 
     { 
      return this._selectedMyList; 
     } 
     set 
     { 
      //value is always Hi 
      if (this._selectedMyList != value) 
      { 
       this._selectedMyList= value; 
       OnPropertyChanged("SelectedMyList"); 
      } 
     } 
    } 

    private List<ObservableCollection> _myList; 
    public ObservableCollection<string> MyList 
    { 
     get 
     { 
      return this._myList; 
     } 
     set 
     { 
      if (this._myList== value) 
      { 
       this._myList= value; 
       OnPropertyChanged("MyList"); 
      } 
     } 
    } 

的XAML:

<ComboBox ItemsSource="{Binding MyList}" 
      SelectedItem="{Binding SelectedMyList}" 
      IsSynchronizedWithCurrentItem="True"/> 
+0

不知道为什么我需要同步它,虽然...我怀疑还有其他事情正在进行,但是,这确实可以解决它。谢谢 – MyDaftQuestions 2014-09-06 14:37:12

相关问题