绑定到模板中的嵌套属性

时间:2016-08-12 10:35:01

标签: c# wpf data-binding

我想为异步方法创建一个带加载指示符的按钮,如下所示:

enter image description here

我创建AsyncCommand实施ICommandINotifyPropertyChanged(详情请参阅MSDN杂志2014年4月)。

我的AsyncCommand具有Execution属性,并且具有IsNotCompleated属性。我想使用Visibility属性设置loader indincator的IsNotCompleted属性。

我创建UserControl继承Button并为此设置样式。我尝试将可见性绑定到Button的Command依赖项属性。

ControlTemplate的部分带有"加载指示符" (我使用内容,而不是可见性,仅举例)

 <Label HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Grid.Column="1"
        Content="{Binding Command.Execution.IsNotCompleted}"/>

没有任何反应。如果我使用TemplateBinding代替Binding,我会收到编译错误:

  • 不支持嵌套类型:Command.Execution
  • 无法找到类型Command.Execution

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

解决方案正在使用RelativeSource.TemplatedParent

<Label HorizontalAlignment="Center"
    VerticalAlignment="Center"
    Grid.Column="1"
    Content="{Binding Command.Execution.IsNotCompleted, RelativeSource={RelativeSource TemplatedParent}}"/>