c# - 在样式中使用RelativeSource作为ConverterParameter

标签 c# wpf xaml data-binding datatemplate

我正在尝试使用项目控件 ItemContainerStyle 中的转换器将 ItemsControl 中项目的属性转换为 X 值。为了进行转换,我还需要对包含 ItemsControl 的父 UserControl 的引用。我尝试使用 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>

我的语法有问题吗?还是有其他方法可以实现此目的?

最佳答案

如果您需要绑定(bind)参数,您通常应该使用 MultiBinding相反。

关于c# - 在样式中使用RelativeSource作为ConverterParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396923/

相关文章:

wpf - 设置属性 'Prism.Regions.RegionManager.RegionName' 引发异常

wpf - 如何使WPF ListView 动态显示图像和标签

c# - T4 获取枚举成员的值

c# - 两种方式绑定(bind)到用户控件中的依赖属性并调用方法

c# - 绑定(bind)到只读 ViewModel 属性并在更改时更新 UI

xaml - Winrt StreamWriter & StorageFile 没有完全覆盖文件

c# - 拆分一批要发送到 Azure 服务总线的消息

c# - CefSharp WPF 和 MVVM?

c# - .NET 抛出 JSON 内容类型的异常

c# - 如何将事件从用户控件冒泡到包含该事件的窗口?