2011-02-11 27 views
0

使用自定義控制的別名在我有很多定製控件實例的WPF(Silverlight的)用戶控件:在XAML

<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,在CustControl2CustControl3等。有時,我必須在UserControl中使用另一個自定義控件類型。我可以只有一個位置來更改自定義控件的名稱,而不是在XAML中的所有引用中更改它?

換句話說,我可以在我的XAML中使用別名來定義那些多個自定義控件引用,也可以使用一個別名來定義該別名的真實CustomControl類的名稱?

或者也許一些其他的方法來解決這個問題?

回答

2

您可以編寫一個簡單的空包裝類,它將繼承您當前使用的控件。然後在XAML中,您將使用此包裝來代替特定的CustControl。在任何時候,你都可以在一個地方改變包裝的基類。我不得不說:這個設計很臭。您確定無法用一個CustControl類的全局樣式/模板解決此問題嗎?