2011-12-07 6 views
1

私はWPFアプリケーションに取り組んでいます。ウィンドウの1つに6つのコンボボックスがあります。WPF複数のコンボボックス通信

<ComboBox x:Name="ScenarioIDcb" Margin="0,5,0,2" Height="24" ItemsSource="{Binding}" SelectionChanged="ScenarioIDcb_SelectionChanged"/> 
<ComboBox x:Name="ScenarioNamecb" Margin="0,2,0,2" Height="24" ItemsSource="{Binding}"/> 
<ComboBox x:Name="ScenarioDescriptioncb" Margin="0,2,0,2" Height="24" ItemsSource="{Binding}"/> 
<ComboBox x:Name="StepIDcb" Margin="0,2,0,2" Height="24" ItemsSource="{Binding}"/> 
<ComboBox x:Name="StepNamecb" Margin="0,2,0,2" Height="24" ItemsSource="{Binding}"/> 
<ComboBox x:Name="StepDescriptioncb" Margin="0,2,0,2" Height="24" ItemsSource="{Binding}"/> 
<ComboBox x:Name="Expectedresultcb" Margin="0,2,0,2" Height="24" ItemsSource="{Binding}"/> 

これらはすべて、1つの観察可能な文字列(ExcelColumnames)のコレクションにバインドされています。

private void SetCBDataContext() 
{ 
    if (this.ExcelColumnames != null && this.ExcelColumnames.Count > 0) 
    { 
     ScenarioIDcb.DataContext = this.ExcelColumnames; 
     ScenarioNamecb.DataContext = this.ExcelColumnames; 
     ScenarioDescriptioncb.DataContext = this.ExcelColumnames; 
     StepIDcb.DataContext = this.ExcelColumnames; 
     StepNamecb.DataContext = this.ExcelColumnames; 
     StepDescriptioncb.DataContext = this.ExcelColumnames; 
     Expectedresultcb.DataContext = this.ExcelColumnames; 
    }   
} 

私が達成したいことは、コンボボックスの1つでユーザーの選択値が他のコンボボックスに表示されるべきでない場合です。ユーザーが同じコンボボックスで他の値を選択した場合、前に選択した値が他のコンボボックスに表示されて選択されます。私を案内してください。私はどうなるのか

おかげPriyank

答えて

1

は、GridViewのリストビューに移動し、1つの列が名前であり、すべてが共有します。次に、値が選択されているかどうかを示す7のそれぞれのブール値を持つ。各7にフィルターを入れて、他のフィルターによって選択されている場合は値を削除します。6. ExcelColumnamesはObservableCollectionである必要があります。フィルタリングについては、http://msdn.microsoft.com/en-us/library/ms752348.aspxを参照してください。あなたは1つのフィルターから離れてIDを渡すことができるので、他のすべてのフィルターを見ることができます。

もう1つのアプローチは、7つのboolプロパティを持つすべてのExcelColumnanamesの1つのリストです。リストからObservableCollectionsを7つ作成し、Linqを使用して.whereでフィルタリングします。このケースでは、ObservableCollectionをListにリンクするとかなりマスターになりますが、ObservableCollectionとObservableCollectionをリンクすることはできません。私はかなりあなたがコンストラクタでLinqとリストを渡すことができますが、肯定的ではないと確信しています。

関連する問題