5

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


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

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

4

2 回答 2

4

如果您使用资源中定义的转换器,它将在您的属性之间共享。

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

于 2010-01-14T21:21:07.360 回答
2

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

于 2010-01-14T21:17:21.483 回答