How to set a MenuItem's IsChecked property for a child of type Enum via XAML?

前端 未结 2 1901
梦如初夏
梦如初夏 2020-12-21 09:45

I\'ve bound a MenuItem to a Enum using this solution.

The Enum Values are displayed correctly, yet I cannot seem to set a default checked value for the MenuItem\'s

相关标签:
2条回答
  • 2020-12-21 10:19

    You can do this. This will Bind to the child MenuItem's DataContext, which is "ItemA" for the first item.

    <MenuItem.ItemContainerStyle> 
        <Style TargetType="MenuItem">
            <Setter Property="MenuItem.IsCheckable" Value="True"/>
            <Style.Triggers> 
                <DataTrigger Binding="{Binding}" Value="ItemA">
                    <Setter Property="MenuItem.IsChecked" Value="True"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </MenuItem.ItemContainerStyle>
    
    0 讨论(0)
  • 2020-12-21 10:23

    in your solution consider changing

    <Trigger Property="MenuItem.Header" Value="enums:AnEnum.ItemA" >
    

    to

    <Trigger Property="MenuItem.Header" Value="{x:Static enums:AnEnum.ItemA}" >
    

    in your example you check that header is equal to sting "enums:AnEnum.ItemA" not to enum AnEnum member ItemA.

    0 讨论(0)
提交回复
热议问题