当我将CheckBox 控件的isChecked
属性bool
作为控件放置在用户控件或窗口上时,我可以将其获取到属性。但是,如果我将它放在工具栏中,它甚至不可见,除了可能是薄的左边缘或右边缘(但绑定仍然有效)。如果我放入一个 ContextMenu,它会显示为选中或未选中,但绑定目标不受影响。
这是 Window.Resources 中的 ContextMenu 定义:
<ContextMenu x:Key="ContentMenu" DataContext="{Binding MyView}">
<CheckBox IsChecked="{Binding Path=IsRed}"/>
</ContextMenu>
这是包含 CheckBox 和带有 CheckBox 的 ToolBar 的 StackPanel:
<StackPanel Height="20" Orientation="Horizontal" DockPanel.Dock="Top" DataContext="{Binding MyView}">
<CheckBox IsChecked="{Binding Path=IsRed}"/>
<ToolBar Margin="10,0,0,0">
<CheckBox Width="18" Height="18" IsChecked="{Binding Path=IsRed}"/>
</ToolBar>
</StackPanel>
我只想问
1)如果有人可以建议工具栏问题的解决方案(也许是不同的模板?),
2)定义上下文菜单的正确方法DataContext
(这似乎是实际问题)。