我有一个自定义控件,我修改了ListView。我有一个DataTemplate,它将每个项目显示为宽度为128的图标,并在其下方显示一个标签。
<DataTemplate x:Key="AeroIconTemplate">
<Grid VerticalAlignment="Top" Margin="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="{Binding Image}" Width="128"
MaxHeight="128" Margin="0"/>
<TextBlock Grid.Row="1" Text="{Binding Title}" Foreground="Black"
TextWrapping="WrapWithOverflow" Margin="0"
TextTrimming="CharacterEllipsis" Width="128" MaxHeight="60" />
</Grid>
</DataTemplate>
现在我已经向ListView本身添加了一个名为IconSize的属性。这需要一个16到256之间的整数。
我想将Width
的{{1}},MaxHeight
和Image
的{{1}}绑定到此属性。因此,每当更改IconSize属性时,都会调整模板的大小。正如您所看到的,我目前正在将某些内容绑定到数据对象(图像源和标签文本),但在这种情况下,我想绑定到ListView 控件
我该怎么做?
谢谢!
答案 0 :(得分:3)
您可以使用RelativeSource
:
... Width="{Binding IconSize,RelativeSource={RelativeSource AncestorType=ListView}}" ...
请务必定义正确的类型,因为WPF ListView
没有属性IconSize
。您可能需要定义您的课程。