在XAML中使用自定义控件的别名

时间:2011-02-11 20:57:39

标签: wpf silverlight xaml custom-controls

在WPF(Silverlight)UserControl中,我有很多自定义控件实例:

<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,还提供了CustControl1CustControl2CustControl3等。有时,我必须在UserControl中使用另一种自定义控件类型。我可以只有一个位置来更改自定义控件的名称,而不是在XAML中的所有众多引用中更改它吗?

换句话说,我可以在我的XAML中为那些多个自定义控件引用使用别名吗?我可以在那里为该别名定义真正的CustomControl类名称吗?

或许还有其他方法可以解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以编写一个简单的空包装类,它将继承您当前使用的控件。然后在XAML中,您将使用此包装器而不是特定的CustControl。您可以随时在一个地方更改包装的基类。

但我必须说:这个设计很臭。您确定无法使用一个CustControl类的全局样式/模板解决此问题吗?