在其数据模板中绑定控件的属性



我有一个自定义控件,我在其中修改了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之间的整数。

我想将ImageWidthMaxHeightTextBlockWidth绑定到此属性。因此,每当IconSize属性更改时,模板的大小都会进行调整。正如您所看到的,我目前正在将一些东西绑定到数据对象(图像源和标签文本),但在这种情况下,我希望绑定到ListView控件

我该怎么做?

谢谢!

您可以使用RelativeSource进行以下操作:

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

请确保定义正确的类型,因为WPF ListView没有属性IconSize。您可能需要定义您的类。

最新更新