2009-08-18 81 views
0

願你快樂每一天DataTemplate中的內容綁定到另一個用戶控件

我在Silverlight

假設我寫一個用戶控件(名AAA.xaml)新的包含一個DataTemplate,其中我想通過數據綁定獲得另一個用戶控件(在BBB.xaml中定義)實例。

我AAA.cs(AAA.xaml的C#文件)用來初始化BBB用戶控制的一個實例(名BBB),我想在AAA的XAML是這樣的:

<DataTemplate> 
    <someKindOfControl SomeAttributeOfControl={Binding bbb} /> 
<DataTemplate> 

它是否可以在AAA中顯示BBB用戶控制,或者它完全錯誤?如果它可以工作,我應該如何正確綁定用戶控件實例?我應該使用哪種控制?

回答

2

我可能會誤解你的問題,但是你不需要使用綁定來將一種類型的控件的實例放入另一種類型的控件的實例中。我建議你做someKindOfControl自ContentControl派生,那麼你可以這樣做:

<DataTemplate> 
    <someKindOfControl> 
    <bbb/> 
    </someKindOfControl> 
</DataTemplate> 

只要確保你使用ContentPresenter在你的默認樣式someKindOfControl - 那將確定在BBB顯示出來。

在另一方面,如果你有,你要插入someKindOfControl你最好關閉使用模板部件插入控制和DataTemplate的範圍內提供someKindOfControl樣式許多控件:

<DataTemplate> 
    <someKindOfControl Style={StaticResource SomeKindOfStyle}/> 
<DataTemplate> 

凡SomeKindOfStyle規定,使許多類型的自定義控制到someKindOfControl的各種模板部件一個控件模板:

<UserControl.Resources> 
    <Style x:Name="SomeKindOfStyle" TargetType="myNamespace:someKindOfControl"> 
    <Setter Property="ControlTemplate"> 
     <Setter.Value> 
     <ControlTemplate> 
      <bbb x:Name="PART_TopRightControl/> 
      <bbb x:Name="PART_BottomLeftControl/> 
      <bbb x:Name="PART_CenterControl/> 
     </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    </Style> 
</UserControl.Resources> 

這是一個比較複雜一點,但可以讓你把米ultiple自定義bbb控制到某個KindOfControl的一個實例中。請記住,我並不完全確定你在做什麼,但如果您發佈了更多信息,我可能會澄清。

0

您無法綁定到數據模板中的用戶控件。

數據模板是一種用戶控件。

相關問題