2016-11-24 10 views
0

CFG_REG、INT_REG、ST_REG、CMD_REG(enumで定義されています)の項目がある場合、CFG_REGを選択するとGCR、PCR、LCR、CR、GSR、PSRを別のコンボボックスに表示する必要があります。私がINT_REGを選択した場合、IEを表示する必要があります。そのように、どうすればいいですか?wpfの別のcomboxアイテムに基づいてコンボボックスでitemsourceをバインドする方法はありますか?

 <ComboBox Grid.Column="2" 
         Grid.Row="1" 
         SelectedIndex="{Binding CMDIndex, Mode=TwoWay}" 
         x:Name="Combobox1" 
         Margin="0,0,1,0" 
         VerticalAlignment="Top"> 
        </ComboBox> 

    <ComboBox Grid.Column="3" IsTextSearchEnabled="True" 
         Grid.Row="1" 
         x:Name="combobox2" 
         ItemsSource="{Binding }" 
         SelectedItem="{Binding RegisterIndex,Mode=TwoWay}" 
         VerticalAlignment="Top" IsSynchronizedWithCurrentItem="True" DisplayMemberPath="Name" 
         Margin="0,0,1,0"> 

        </ComboBox> 

答えて

1

ビューモデル/コード内のアイテムのコレクション(ICollectionまたはObservableコレクション)を最初のコンボボックスのitemsSourceにバインドする必要があります。最初のコンボボックスの 'SelectedItem'をコードビハインド/ビューモデルのプロパティにバインドし、このプロパティの設定ツールで他のコンボボックスにバインドされる別のコレクションをフィルタリングする必要があります。私はあなたがそのアイデアを得ることを望みます。コードで

<ComboBox ItemsSource ={Binding Collection1} SelectedItem ={Binding SelectedItem} .../> 

:たとえば

public ICollection Collection1 {get;set;} 
public ICollection Collection2 {get;set;} 

public string SelectedItem 
{ 
get {..} 
set{ 
SelectedItem = value; 
ChangeSecondCollection(value); 
} 

public void ChangeSecondCollection(string value) 
{ 
Collection2 = //Filter your second collection here. 
} 
+0

申し訳ありませんが、私は、得ていないのです、あなたは私が@のRohit、ガーグ上記の例でelabarateすることができます –

関連する問題