2009-08-18 113 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

您无法绑定到数据模板中的用户控件。

数据模板是一种用户控件。

相关问题