是否可以写这样的东西
<TextBlock Text="{Binding Path=TextSource, StringFormat='{Binding Path=StringFormat}' }"
或者单一方法是有三个属性:一个用于某个值,另一个用于表示此值的字符串,第三个用于格式字符串。在这种情况下,TextBox与值的字符串表示绑定。格式字符串更改时字符串表示会更改。
答案 0 :(得分:1)
是的,一般情况下是可能的,并且由于StringFormat不是依赖属性,因此不可能这样做。
绑定仅适用于依赖属性。
如果您希望这样做,请创建Freezable类型的资源字典,并让它继承实际的DataContext。此外,还使用StaticResource扩展在Binding中设置StringFormat。
StringFormat不是DependencyProperty,但它接受{StaticResource someKey}。
这是一种解决方法。但它会起作用。
另一种替代解决方案是附属财产。
附加属性是可绑定的。您需要侦听附加属性的属性更改事件,并更改处理程序内的StringFormat。