在Silverlight中,我有一个DataTemplate绑定到一个对象,该对象包含一个包含UserControl的属性。
在DataTemplate中,我想绑定到包含UserControl的属性,以便UserControl显示为DataTemplate的一部分。
目前,我正在使用ItemsControl并将ItemsSource绑定到包含UserControl的属性,这是有效的,但是,UserControl没有填充可用空间,这让我想知道是否有更好的方法这样做。
感谢您的帮助。
马丁。
编辑:根据要求提供一些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>
其中,绑定的Contents属性如下:
private UserControl _contents;
public UserControl Contents
{
get {return _contents;}
set
{
_contents = value;
NotifyPropertyChanged("Contents");
}
}
答案 0 :(得分:0)
不知道为什么你使用ItemsControl来显示内容,也许你在使用ContentControl时尝试使用它。
<ContentControl Content="{Binding Contents}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ...
注意属性HorizontalContentAlignment和VerticalContentAlignment,这些属性设置控件内容的对齐方式,因此如果将它们设置为“Stretch”,则内容应该适合所有可用空间。