У меня есть случай, когда иерархия классов выглядит примерно так:
+---------------+
| UIElement |
|---------------| +----------------------+
| ... | | My Windows Application
| SomePropert{} | |----------------------|
| |<---+ |+--------------------+|
| | | ||MyUserControl ||
+---------------+ | ||--------------------||
+--------------+-----+ || ||
|FrameWorkElement | |+--------------------+|
|--------------------| |//Want to use |
| ... |<-+ |// SomeProperty; |
+--------------------+ | | |
+-----------+-+ | |
|Control | | |
|-------------| +----------------------+
| ... |<---+
+-------------+ |
+-----------+---+
| UserControl |
|---------------|<---+
| ... | |
+---------------+ |
+----------+-------+
| MyUserControl |
|------------------|
| SomeProperty{} |
| //Want to override
| |
+------------------+
Теперь в моем приложении (и во всех других приложениях, где я могу экспортировать этот MyUserControl) я могу установить SomeProperty
, который обрабатываетсяклассом MyUserControl
вместо UIElement
?
Сейчас я делаю это, создавая объект для MyUserControl и назначая его элементу управления, который я добавил на своей странице xaml. Так что сейчас выглядит так,
MyUserControl newControl = new MyUserControl();
web = windowsPhoneControl11; //windowsPhoneControll1 is the
//one that I added from toolbox.
// i.e., mycustomecontrol added from toolbox.
Итак, теперь, когда я использую «новый», он переопределяется.Но когда я экспортирую этот элемент управления, я не могу ожидать, что пользователь создаст новый объект и назначит его элементу управления, который используется на странице xaml.
Так есть ли другой способ переопределить это свойство, чтобы присвоение этого свойства обрабатывалось классом MyUserControl, а не классом UIElement?Что я имею в виду, что MyUserControl имеет элемент управления для установки этого свойства, так это то, что мне нужно проверить какое-то значение перед его назначением.Если оно не превышает ожидаемого значения, тогда мне нужно установить его на значение по умолчанию.
Ps: Я прошу прощения за такой длинный вопрос, но я не мог выразить его более точно, и я не смогнайти любой другой вопрос, связанный с этим.И это WindowsPhoneApp ... Не обычное приложение для Windows.