2015-05-09 137 views
1

我的.xaml文件中有兩個組合框。我會打電話給第一個組合框「主組合框」。另一個組合框還包含與第一個主組合框中相同的一組值。WPF - 將一個組合框的選定項目更改爲另一個組合框的選定項目

當我在第一個組合框中更改選擇時,我想要將其他組合框的選擇更改爲相同的值。

我已經完成了它,如下所示。

在我的viewmodel中,我有以下幾點。

private <MyClass> _firstComboBoxSelection; 
    public <MyClass> FirstComboboxSelection 
    { 
     set { _firstComboBoxSelection=value; } 
     get { return _firstComboBoxSelection ; } 

    } 

    private <MyClass> _secondComboBoxSelection; 
    public <MyClass> SecondComboboxSelection 
    { 
     set { _secondComboBoxSelection=value; } 
     get { return _secondComboBoxSelection ; } 

    } 

組合框如下所示。

 <ComboBox Name="cmbFirst" 
       SelectionChanged="cmbFirst_SelectionChanged" 
       SelectedItem="{Binding FirstComboboxSelection,Mode=TwoWay}" 
       ItemSource="{Binding MyData}" 
       DisplayMemberPath="Name" /> 

     <ComboBox SelectedItem="{Binding SecondComboboxSelection,Mode=TwoWay}" 
       ItemSource="{Binding MyData}" 
       DisplayMemberPath="Name" /> 

邁德特MyClass的一個的ObservableCollection。 MyClass包含屬性名稱。 在我的.xaml.cs文件中,我有以下內容。

private void cmbFirst_SelectionChanged(...) 
    { 

     _secondComboBoxSelection=_firstComboBoxSelection; 
    } 

但它不會更改第二個組合框,因爲我希望它。有人能幫我弄清楚我出錯的地方嗎?

+0

您不需要在事件背後的代碼中執行此操作。您應該能夠將第二個組合框綁定到xaml中的第一個組合框。您可以綁定到Xaml中的其他控件屬性。 – mageos

+0

你能舉個例子嗎?我是新來WPF –

回答

1

在你第二個組合框的變化

<ComboBox SelectedItem="{Binding SecondComboboxSelection}" 

<ComboBox SelectedItem="{Binding FirstComboboxSelection}" 

您也可以嘗試使用SelectedValuePath這樣

<ComboBox Name="cmbFirst" 
       SelectionChanged="cmbFirst_SelectionChanged" 
       SelectedItem="{Binding FirstComboboxSelection,Mode=TwoWay}" 
       ItemSource="{Binding MyData}" 
       SelectedValuePath="Name" 
       DisplayMemberPath="Name" /> 

,並在代碼中,你可以做這樣的事情 -

private <MyClass> _firstComboBoxSelection; 
    public <MyClass> FirstComboboxSelection 
    { 
     set { _firstComboBoxSelection=value; 
       OnPropertyChanged(_firstComboBoxSelection); } 
     get { return _firstComboBoxSelection ; 
       } 

    } 
+0

我做了...但它沒有工作:( –

+0

你可以請嘗試我更新的答案 – BSG

+0

你能告訴我什麼是OnPropertyChanged的命名空間?它說「OnPropertyChanged」不存在當前上下文 –

相關問題