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