Я пытаюсь привязать флажок, для которого для свойства ThreeState установлено значение True. Мы хотим иметь возможность возвращать нуль, если CheckState неопределен, без написания обработчика событий для каждого флажка. Эта конкретная форма имеет более 20 флажков.
Я попытался привязаться к CheckState, но неопределенное состояние не возвращает ноль и блокирует форму. Привязка к отмеченному свойству возвращает True, когда флажок находится в неопределенном состоянии. Кроме того, мы привязываем свойства объекта класса, а не таблицы данных.
У команды есть два возможных решения, оба из которых имеют свои недостатки:
Один из них заключается в создании дополнительного свойства в классе для каждого логического свойства, которое читает CheckState и затем устанавливает логическое свойство равным null, true или false соответственно. Больно добавлять все эти свойства ко всем классам, которые имеют логические поля, которые не являются обязательными для заполнения.
Второй - создать пользовательский элемент управления, который наследует элемент управления checkbox и добавляет новое свойство, к которому мы можем привязать логическое свойство класса. У пользовательских элементов управления есть свои проблемы, о которых большинство знает.
Мои вопросы:
Что я пропускаю?
Есть ли лучший способ реализовать это через привязку данных?
Какие еще методы использовали другие?