使用数据模板中的复选框,在组合框中默认选中一个特定复选框

时间:2012-08-19 20:50:18

标签: c# wpf mvvm checkbox datatemplate

我在数据模板中有复选框和复选框。 Combobox ItemSource属性与ViewModel中的集合绑定。我想要检查一个特定的复选框是否为默认值。我怎么能这样做?

<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>

1 个答案:

答案 0 :(得分:1)

我会在你的viewmodel中创建一个boolean属性,然后在加载集合时,找到你应该检查的集合中的对象,并设置为if。

 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"/>

但是,这可能要求您将此属性与对象模型分开