我有几个数据网格的应用程序,并导出到excel命令,该命令将集中化的datagrid作为命令参数。是否可以将CommandParameter绑定到FocusManager.FocusedElement,还是必须显式设置它们?

提前致谢

最佳答案

是的,您可以绑定到FocusedElement。就像是:

<Button ...
    CommandParameter="{Binding (FocusManager.FocusedElement), RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />


根据您的焦点范围,您可能需要将Window更改为另一个元素。

但就我个人而言,我将设置命令的处理程序以查看参数是否为null。如果是,那么我将以编程方式获取FocusManager.FocusedElement

var element = parameter as DataGrid;
if (element == null)
    element = FocusManager.FocusedElement as DataGrid.


您还可以根据需要在视觉树中搜索以获取关联的DataGrid。

关于wpf - 绑定(bind)到FocusManager.FocusedElement,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7849817/

10-11 15:21