実現したいこと
コンボボックス1の選択状態に基づいて、コンボボックス2のItemsSourceを変更したい。
例として、コンボボックス1は"1","2"のいずれかを選択できる。
コンボボックス1の選択値が"1"の時はコンボボックス2は"A"のみ選択可能としたい。
コンボボックス1の選択値が"2"の時はコンボボックス2は"B"と"C"を選択可能としたい。
質問したいこと
コンボボックス2のItemsSourceにバインドした変数SetListの内容を設定しても、コンボボックスに何も表示されない
変更した変数に基づいてコンボボックスの表示が変わるような実装を行いたい
(補足:SetListに中には_setList1または_setList2の値が入っているが、コンボボックスに項目が表示されないです)
現状のコード
コンボボックス1のXAML
XAML
1<ComboBox ItemsSource="{Binding BaseList}" SelectedIndex="{Binding BaseIndex}" 2 Foreground="{DynamicResource MaterialDesignBody}" 3 VerticalAlignment="Center" 4 Margin="5,5,5,5" Width="50"> 5 <i:Interaction.Triggers> 6 <i:EventTrigger EventName="SelectionChanged"> 7 <i:InvokeCommandAction Command="{Binding SelectionChangedCommand}"/> 8 </i:EventTrigger> 9 </i:Interaction.Triggers> 10</ComboBox>
コンボボックス2のXAML
XAML
1<ComboBox ItemsSource="{Binding Path=SetList}" SelectedIndex="{Binding SetIndex}" 2 Foreground="{DynamicResource MaterialDesignBody}" 3 VerticalAlignment="Center" 4 Margin="5,5,5,5" Width="120"/>
ViewModel
C#
1public class ViewModel : BindableBase 2{ 3 private List<string> _baseList = new List<string>() 4 { 5 "1", 6 "2", 7 }; 8 9 public List<string> Baseist 10 => _baseList; 11 12 private int _baseIndex = 0; 13 public int BaseIndex 14 { 15 get { return _baseIndex; } 16 set { SetProperty(ref _baseIndex, value); } 17 } 18 19 private List<string> _setList1 = new List<string>() 20 { 21 "A", 22 }; 23 private List<string> _setList2 = new List<string>() 24 { 25 "B", 26 "C", 27 }; 28 29 private int _setIndex = 0; 30 public int SetIndex 31 { 32 get { return _setIndex; } 33 set { SetProperty(ref _setIndex, value); } 34 } 35 36 public List<string> SetList; 37 38 public ICommand SelectionChangedCommand { get; } 39 40 public ViewModel() 41 { 42 SelectionChangeCommand = new DelegateCommand(SelectionChange_Execute); 43 } 44 45 private void SelectionChange_Execute() 46 { 47 if (BaseIndex == 0) 48 { 49 SetList = new List<string>(_setList1); 50 } 51 else if (BaseIndex == 1) 52 { 53 SetList = new List<string>(_setList2); 54 } 55 } 56} 57 58
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/06/24 07:41
2019/06/24 07:48
2019/06/24 07:50
退会済みユーザー
2019/06/24 07:56