2011-09-22 40 views
0

在Silverlight中,我有一个DataTemplate绑定到一个对象,该对象包含保存UserControl的属性。Silverlight绑定到DataTemplate中的用户控件

在DataTemplate中,我想绑定到保存UserControl的属性,以便UserControl显示为DataTemplate的一部分。

目前,我正在使用ItemsControl并将ItemsSource绑定到包含UserControl的属性,并且这是工作的,但是,UserControl没有填充可用空间,这让我想知道是否有更好的方法做这件事。

感谢您的任何帮助。

Martyn。

编辑:根据要求一些XAML:

<DataTemplate x:Key="ContentTemplate"> 
    <Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="1*"/> 
    </Grid.RowDefinitions> 
    <TextBlock Text="Large Content" Grid.Row="0"/> 
    <ItemsControl ItemsSource="{Binding Contents}" Grid.Row="1" MinHeight="200" MinWidth="300" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/> 
    </Grid> 
</DataTemplate> 

其中,被绑定的内容属性如下:

private UserControl _contents; 
public UserControl Contents 
{ 
    get {return _contents;} 
    set 
    { 
    _contents = value; 
    NotifyPropertyChanged("Contents"); 
    } 
} 
+0

你能提供更多细节(Xaml)吗?它在答案中提供了相关示例。谢谢。 –

+0

按要求完成。感谢您的期待。 – MartynJones87

回答

0

不知道为什么你使用一个ItemsControl显示内容,也许如果你试用ContentControl。

<ContentControl Content="{Binding Contents}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ... 

注意属性Horizo​​ntalContentAlignment和VerticalContentAlignment,这些属性将控制内容的alignament,因此,如果您将其设置为“拉伸”,那么内容应适合所有可用空间。