0

データテンプレートにチェックボックス付きのコンボボックスがあります。Combobox ItemSourceプロパティは、ViewModelのコレクションにバインドされています。1つの特定のチェックボックスをデフォルトでチェックしたい。これどうやってするの?

<ComboBox Grid.Column="1"
          ItemsSource="{Binding MyCollection, Mode=OneWay}" 
          Style="{StaticResource MyComboboxStyle}"
          Margin="5"
          MinWidth="120">
                <ComboBox.ItemTemplate>
                    <DataTemplate>            
                        <CheckBox Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext.MyCheckedCommand}"
                                  CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
                                  Content="{Binding}"
                                  IsChecked="false"
                                  VerticalAlignment="Center"
                                  Margin="3"/>                    
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
4

1 に答える 1

1

ビューモデルにブールプロパティを作成し、コレクションをロードするときに、チェックしてtrueに設定する必要があるコレクション内のオブジェクトを見つけます。

 public bool IsChecked { get; set; }

XAML:

  <CheckBox Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext.MyCheckedCommand}"
                              CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
                              Content="{Binding}"
                              IsChecked="{Binding IsChecked}"
                              VerticalAlignment="Center"
                              Margin="3"/>

ただし、これには、オブジェクトモデルとは別にこのプロパティが必要になる場合があります

于 2012-08-19T20:55:04.723 に答える