在样式中使用RelativeSource作为ConverterParameter

时间:2012-02-22 14:41:39

标签: c# wpf xaml data-binding datatemplate

我正在尝试在项目控件ItemContainerStyle中使用转换器将ItemsControl中项目的属性转换为X值。要进行转换,我还需要引用包含UserControl的父ItemsControl。我尝试使用RelativeSource,但在Convert函数中,参数不是UserControl,而是RelativeSource的实例。这是我的XAML:

<ItemsControl x:Name="itemsControl">
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Canvas.Left">
                <Setter.Value>
                    <Binding Path="StartTime" 
                             Converter="{StaticResource startTimeToXConverter}"
                             ConverterParameter="{RelativeSource Mode=FindAncestor, AncestorType=UserControl}" />
                </Setter.Value>
            </Setter>
            <Setter Property="Canvas.Top" Value="{Binding Path=Y}" />
        </Style>
    </ItemsControl.ItemContainerStyle>

我的语法有问题,还是有另一种方法可以达到这个目的?

1 个答案:

答案 0 :(得分:3)

如果您需要绑定Parameter,则通常应使用MultiBinding