我遇到的为绑定指定值转换器的最常见方法是:
1. 将值转换器的实例创建为具有键的资源。
2. 使用 StaticResource 标记扩展引用实例:
<TextBlock Text="{Binding Converter={StaticResource myFormatter}" />
Q:如下使用静态实例有什么问题吗:
<TextBlock Text="{Binding Path=Description, Converter={x:Static local:MyFormatter.Instance}}"/>
// where Instance is declared as:
public readonly static MyFormatter Instance = new MyFormatter();
在我的情况下,值转换器是不可变的。
编辑:另一种方法是将转换器转换为扩展 ,以便您使用标记扩展格式指定转换器:
<TextBlock Text="{Binding Converter={local:MyFormatter}}"/>