Являются ли преобразователи значений экземплярами для привязки в WPF? - PullRequest
5 голосов
/ 15 января 2010

Создается ли отдельный объект преобразователя значений WPF для каждой привязки, в которой используется определенный класс преобразователей значений?


Я пытаюсь создать двусторонний преобразователь битовых значений в логические. Я хотел бы иметь возможность связать свойство bool (например, IsChecked) с битом в типе значения (например, ushort). Я использую parameter аргументы конвертера, чтобы указать бит. Реализация метода ConvertBack () проста, но Convert () немного сложнее.

В Convert () мне нужно знать, каково значение всего ushort, чтобы я мог переключать только один интересующий меня бит. Я думал о том, чтобы просто использовать переменную-член в моем классе преобразователя значений для временного сохраняйте это всякий раз, когда вызывается ConvertBack (), что приводит к приведенному выше вопросу: получает ли каждая привязка свой собственный экземпляр преобразователя значений?

Ответы [ 2 ]

4 голосов
/ 15 января 2010

Если вы используете конвертер, определенный в ваших ресурсах, он будет доступен всем вашим свойствам.

Если вам нужны уникальные конвертеры: однако, если вы создаете определенный конвертер для свойства, он не будет предоставлен в общий доступ.,Любой вариант работоспособен.Вы даже можете использовать несколько конвертеров (одного типа, с разными ключами) в своих ресурсах, которые будут создавать уникальные экземпляры.

2 голосов
/ 15 января 2010

Создайте конструктор и деструктор в вашем конвертере и установите точки останова внутри, чтобы сказать наверняка. Я только что создал простой пример, и похоже, что только один конвертер был создан для моих нескольких моделей представления, которые использовали конструктор

...