我有一个Grid的上下文菜单的MenuItem,它的IsEnabled属性绑定到MyProperty。它工作正常,直到我实际点击MenuItem的事件处理程序,其中没有代码。单击MenuItem后,dataBinding不再有效。
我可以告诉cos'我在MyProperty的吸气器中的断点没有被击中。
任何想法为什么?
以下是代码:
<my:DataGrid.ContextMenu >
<ContextMenu Name="restoreCntextMenu" DataContext="{Binding PlacementTarget.SelectedItem, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Data Service" Click="dataServiceToolStripMenuItem_DropDownOpening">
<MenuItem Header="Start" Click="startDataToolStripMenuItem_Click" IsEnabled="{Binding MyProperty}" />
</MenuItem>
</ContextMenu>
</my:DataGrid.ContextMenu>
答案 0 :(得分:0)
我的猜测是有些东西正在改变datacontext。我会设置一个按钮或其他东西,然后单击您的菜单然后按钮,然后在按钮中检查菜单的datacontext以确保它符合您的想法。
答案 1 :(得分:0)
上下文菜单不像其他所有内容一样是视觉树的一部分,因此您的绑定将无法像其他地方一样工作。
而是需要绑定到放置目标。请参阅this question中接受的答案。