WPF 数据绑定到同一控件中的属性
在此示例中,按钮的 IsEnabled 属性绑定到网格的选定行“本地”属性,并且工作正常:
<Button DockPanel.Dock="Bottom" Width="100" Height="100" IsEnabled="{Binding ElementName=dataGridRestore , Path=SelectedItem.Local}"></Button>
<my:DataGrid x:Name="dataGridRestore"
ItemsSource="{Binding}"
>
<my:DataGrid.ContextMenu>
<ContextMenu Name="restoreCntextMenu">
<MenuItem Header="Open" />
</ContextMenu>
</my:DataGrid.ContextMenu>
<my:DataGridCheckBoxColumn Header="Local" Binding="{Binding Local}" />
</my:DataGrid>
现在,当我将按钮从网格外部移动到网格上下文菜单内部时,我的绑定不会不工作。这是为什么?我该如何解决它?
<my:DataGrid x:Name="dataGridRestore"
ItemsSource="{Binding}"
>
<my:DataGrid.ContextMenu>
<ContextMenu Name="restoreCntextMenu">
<MenuItem Header="Open" />
<Button Width="100" Height="100" IsEnabled="{Binding ElementName=dataGridRestore , Path=SelectedItem.Local}"></Button>
</ContextMenu>
</my:DataGrid.ContextMenu>
<my:DataGridCheckBoxColumn Header="Local" Binding="{Binding Local}" />
</my:DataGrid>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用此代码:
我使用 DataGridRows 的 ContextMenu 对其进行了测试,并且工作正常。
Use this code:
I tested it with ContextMenu of DataGridRows and it worked fine.
使用RelativeSource 属性而不是ElementName 怎么样?
现在无法测试它,但类似这样:
What about using the RelativeSource attribute instead of the ElementName?
can't test it right now but something like this :