是否在WPF中实现了每个绑定的值转换器?

时间:2010-01-14 21:01:31

标签: wpf binding valueconverter

是否为使用特定值转换器类的每个绑定实例化了单独的WPF值转换器对象?


我正在尝试创建一个双向位到布尔值转换器。我希望能够将bool属性(例如IsChecked)绑定到值类型中的某个位(如ushort)。我正在使用转换器的parameter参数来指定该位。实现ConvertBack()方法很简单,但转换()有点棘手。

在Convert()中,我需要知道整个ushort的值是什么,所以我可以切换我感兴趣的单个位。我想在我的值转换器类中使用成员变量每当调用ConvertBack()时暂时存储它,从而导致上述问题:每个绑定是否都有自己的值转换器实例?

2 个答案:

答案 0 :(得分:4)

如果您使用资源中定义的转换器,它将在您的媒体资源中共享。

如果您需要独特的转换器: 但是,如果为属性创建特定转换器,则不会共享它。这两种选择都是可行的。您甚至可以在资源中使用多个转换器(相同类型,不同的键),这将创建唯一的实例。

答案 1 :(得分:2)

在转换器中创建构造函数和析构函数,并在其中设置断点以确定。我刚刚创建了一个简单的示例,看起来只为我的多个使用构造函数的视图模型创建了一个转换器