我有一个自定义控件,我在其中修改了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之间的整数。
我想将Image
的Width
、MaxHeight
和TextBlock
的Width
绑定到此属性。因此,每当IconSize属性更改时,模板的大小都会进行调整。正如您所看到的,我目前正在将一些东西绑定到数据对象(图像源和标签文本),但在这种情况下,我希望绑定到ListView控件。
我该怎么做?
谢谢!
您可以使用RelativeSource
进行以下操作:
... Width="{Binding IconSize,RelativeSource={RelativeSource AncestorType=ListView}}" ...
请确保定义正确的类型,因为WPF ListView
没有属性IconSize
。您可能需要定义您的类。