Использование псевдонима пользовательского элемента управления в XAML - PullRequest
0 голосов
/ 11 февраля 2011

В пользовательском элементе управления WPF (Silverlight) у меня есть множество пользовательских элементов управления:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:My="clr-namespace:MyProject;assembly=MyAssembly" Name="uc1" >
...
<Grid x:Name="grid1">   
...   
  <My:CustControl x:Name="name1" />   
  <My:CustControl x:Name="name2" />   
  <My:CustControl x:Name="name3" />   
... 
</Grid> 

В MyProject Я реализовал не только CustControl, но также CustControl1, CustControl2, CustControl3 и тому подобное. Иногда мне приходится использовать другой пользовательский тип элемента управления в UserControl. Могу ли я иметь только одно место для изменения имени пользовательского элемента управления вместо его изменения во всех многочисленных ссылках в XAML?

Другими словами, могу ли я использовать псевдоним для этих нескольких пользовательских ссылок на элементы управления внутри моего XAML и в одном месте, где я определяю имя реального класса CustomControl для этого псевдонима?

А может, какой-то другой подход к решению этой проблемы?

1 Ответ

2 голосов
/ 12 февраля 2011

Вы можете написать простой пустой класс-обертку, который унаследует элемент управления, который вы используете в данный момент. Тогда в XAML вы бы использовали эту оболочку вместо конкретного CustControl. В любой момент вы можете изменить базовый класс для оболочки в одном месте.

Но я должен сказать: этот дизайн воняет. Вы уверены, что не можете решить эту проблему с помощью глобальных стилей / шаблонов для одного класса CustControl?

...