在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
,还提供了CustControl1
,CustControl2
,CustControl3
等。有时,我必须在UserControl中使用另一种自定义控件类型。我可以只有一个位置来更改自定义控件的名称,而不是在XAML中的所有众多引用中更改它吗?
换句话说,我可以在我的XAML中为那些多个自定义控件引用使用别名吗?我可以在那里为该别名定义真正的CustomControl类名称吗?
或许还有其他方法可以解决这个问题?
答案 0 :(得分:2)
您可以编写一个简单的空包装类,它将继承您当前使用的控件。然后在XAML中,您将使用此包装器而不是特定的CustControl。您可以随时在一个地方更改包装的基类。
但我必须说:这个设计很臭。您确定无法使用一个CustControl类的全局样式/模板解决此问题吗?