只有一个选中值的菜单项

本文关键字:菜单项 有一个 | 更新日期: 2023-09-27 17:56:11

我想在我的应用程序中有一个上下文菜单"DefaultPrinter",它有一些绑定的子项(另一个菜单项)表示打印机的名称。每个子项都有一个属性 IsCheckable 设置为 true。

<MenuItem Header="DefaultPrinter" ItemsSource="{Binding AllPrinters}">
     <MenuItem.ItemContainerStyle>
          <Style TargetType="{x:Type MenuItem}">
              <Setter Property="IsCheckable" Value="True"/>
          </Style>
     </MenuItem.ItemContainerStyle>
</MenuItem>

但是,当然,我只想检查一台打印机(此代码不支持该打印机)。我在互联网上寻找解决方案,但没有找到任何有用的东西。问题是MenuItemItemsControl中分离出来,因为它没有项目选择的概念(如Selector)。我可以尝试编写自己的选择,但首先,我想知道是否有更好,更简单的解决方案来实现该目标。

任何帮助将不胜感激。

只有一个选中值的菜单项

可能会滥用隐藏的RadioButton

<MenuItem.ItemTemplate>
    <DataTemplate>
        <Grid>
            <RadioButton GroupName="Printers"
                    IsChecked="{Binding IsChecked, RelativeSource={RelativeSource AncestorType=MenuItem}}"
                    Visibility="Collapsed"/>
            <TextBlock Text="{Binding FullName}"/>
        </Grid>
    </DataTemplate>
</MenuItem.ItemTemplate>
相关文章: