只有一个选中值的菜单项
本文关键字:菜单项 有一个 | 更新日期: 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>
但是,当然,我只想检查一台打印机(此代码不支持该打印机)。我在互联网上寻找解决方案,但没有找到任何有用的东西。问题是MenuItem
从ItemsControl
中分离出来,因为它没有项目选择的概念(如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>