如何绑定ContentControl.Content上的FocusExtension.DefaultControl附加属性
绑定修改方案
你需要按照WPF附加属性的绑定语法修改Path即可,修改后的FocusAfterBusy绑定代码如下:
<xctk:BusyIndicator IsBusy="{Binding ElementName=MainRegion, Path=Content.DataContext.IsBusy}" FocusAfterBusy="{Binding Path=Content.(ext:FocusExtension.DefaultControl), ElementName=MainRegion}"> <ContentControl x:Name="MainRegion"> </ContentControl> </xctk:BusyIndicator>
语法说明
- 绑定附加属性时,必须用
()将附加属性的完整标识(命名空间别名+所属静态类名+属性名)包裹,绑定引擎才能正确识别该属性为附加属性,而非普通的Content实例属性 - 请确保Shell层MainView的XAML根节点已经正确引入了
FocusExtension对应的命名空间别名,和模块视图中用的ext别名保持一致,示例命名空间声明如下:
<Window x:Class="你的Shell命名空间.MainView" xmlns:ext="clr-namespace:FocusExtension所在的命名空间;assembly=FocusExtension所在的程序集名称"> <!-- 其余代码 --> </Window>
排查提示:如果绑定未生效,可以查看Visual Studio输出窗口的绑定报错信息,优先检查命名空间别名拼写、附加属性名拼写是否正确。
内容的提问来源于stack exchange,提问作者Alexey Titov
相关产品推荐
相关产品推荐

