Можно ли определить свойство в пользовательском элементе управления WPF? - PullRequest
2 голосов
/ 10 октября 2008

При создании пользовательского элемента управления WPF возможно ли сделать свойство обязательным через атрибут или другой механизм?

1 Ответ

1 голос
/ 10 октября 2008

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

В тот момент, когда вам нужно свойство, если оно не было установлено (this.Property == UnsetValue), сгенерируйте исключение InvalidOperationException с описанием проблемы.

Кроме того, убедитесь, что это заметно описано в документации к классу, свойству и всем методам, которые выдают исключение, если свойство не установлено.

** редактировать В качестве альтернативы, вы можете создать схему XSD для вашего элемента управления, которая идентифицирует свойство как необходимое, однако я не знаю, как это сделать.

Более быстрое решение может заключаться в реализации ISupportInitialize, который позволит вам проверять свойство во время десериализации, когда вы можете вызвать исключение. Вот пост об этом в блоге Релии об этом.

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