Каков наилучший способ привязки к флажку Tri-state? - PullRequest
0 голосов
/ 06 декабря 2011

Я пытаюсь привязать флажок, для которого для свойства ThreeState установлено значение True. Мы хотим иметь возможность возвращать нуль, если CheckState неопределен, без написания обработчика событий для каждого флажка. Эта конкретная форма имеет более 20 флажков.

Я попытался привязаться к CheckState, но неопределенное состояние не возвращает ноль и блокирует форму. Привязка к отмеченному свойству возвращает True, когда флажок находится в неопределенном состоянии. Кроме того, мы привязываем свойства объекта класса, а не таблицы данных.

У команды есть два возможных решения, оба из которых имеют свои недостатки: Один из них заключается в создании дополнительного свойства в классе для каждого логического свойства, которое читает CheckState и затем устанавливает логическое свойство равным null, true или false соответственно. Больно добавлять все эти свойства ко всем классам, которые имеют логические поля, которые не являются обязательными для заполнения.

Второй - создать пользовательский элемент управления, который наследует элемент управления checkbox и добавляет новое свойство, к которому мы можем привязать логическое свойство класса. У пользовательских элементов управления есть свои проблемы, о которых большинство знает.

Мои вопросы: Что я пропускаю? Есть ли лучший способ реализовать это через привязку данных? Какие еще методы использовали другие?

1 Ответ

2 голосов
/ 07 декабря 2011

Спасибо Крису Ф. за упоминание обнуляемого (логического) типа данных.

Если для свойства типа данных установлено значение Nullable (Boolean) и THEN, то при установке привязки к CheckState вместо флажка все будет работать правильно. Значения, отправляемые в базу данных, соответствуют правильным настройкам. Intermediate устанавливает значение Nothing (Null в базе данных), Checked устанавливает его в True, непроверенное устанавливает его в False.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...