是否可以在其他绑定中使用绑定?

时间:2013-10-22 10:29:32

标签: wpf xaml binding

是否可以写这样的东西

<TextBlock Text="{Binding Path=TextSource, StringFormat='{Binding Path=StringFormat}' }"

或者单一方法是有三个属性:一个用于某个值,另一个用于表示此值的字符串,第三个用于格式字符串。在这种情况下,TextBox与值的字符串表示绑定。格式字符串更改时字符串表示会更改。

1 个答案:

答案 0 :(得分:1)

是的,一般情况下是可能的,并且由于StringFormat不是依赖属性,因此不可能这样做。

绑定仅适用于依赖属性。

如果您希望这样做,请创建Freezable类型的资源字典,并让它继承实际的DataContext。此外,还使用StaticResource扩展在Binding中设置StringFormat。

StringFormat不是DependencyProperty,但它接受{StaticResource someKey}。

这是一种解决方法。但它会起作用。

另一种替代解决方案是附属财产。

附加属性是可绑定的。您需要侦听附加属性的属性更改事件,并更改处理程序内的StringFormat。