我有一个应用程序,其中包含多个数据表格和导出到Excel的命令,该命令将聚焦的数据表格作为参数。是否可以将CommandParameter绑定到FocusManager.FocusedElement,还是必须明确设置它们?
提前感谢您的帮助。
提前感谢您的帮助。
是的,您可以绑定到FocusedElement。类似于:
<Button ...
CommandParameter="{Binding (FocusManager.FocusedElement), RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
根据您的关注范围,您可能需要将窗口更改为另一个元素。
但是,个人建议设置命令处理程序以查看参数是否为空。如果为空,则可以通过编程方式获取FocusManager.FocusedElement
。
var element = parameter as DataGrid;
if (element == null)
element = FocusManager.FocusedElement as DataGrid.
"SelectedDataGrid"
,每当你的任何 DataGrid 获取焦点时更新它。在代码中简单地使用该属性,而不是从视图传递它。