我有几个数据网格的应用程序,并导出到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/