1

我有一个自定义控件,我在其中修改了 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, MaxHeightof theImage和 theWidth绑定TextBlock到这个属性。因此,无论何时更改 IconSize 属性,都会调整模板的大小。如您所见,我目前正在将一些东西绑定到数据对象(图像源和标签文本),但在这种情况下,我想绑定到 ListView控件

我该怎么做呢?

谢谢!

4

1 回答 1

3

你可以使用RelativeSource

... Width="{Binding IconSize,RelativeSource={RelativeSource AncestorType=ListView}}" ...

请务必定义正确的类型,因为 WPFListView没有属性IconSize。您可能需要定义您的类。

于 2012-09-13T08:30:00.257 回答