我在数据模板中有复选框和复选框。 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>
答案 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"/>
但是,这可能要求您将此属性与对象模型分开