在DataTemplate中绑定控件的属性

时间:2012-09-13 07:40:40

标签: wpf listview binding datatemplate

我有一个自定义控件,我修改了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}},MaxHeightImage的{​​{1}}绑定到此属性。因此,每当更改IconSize属性时,都会调整模板的大小。正如您所看到的,我目前正在将某些内容绑定到数据对象(图像源和标签文本),但在这种情况下,我想绑定到ListView 控件

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用RelativeSource

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

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

相关问题