【问题标题】:how to use a converter inside a ResourceDictionary如何在 ResourceDictionary 中使用转换器
【发布时间】:2011-08-07 08:53:56
【问题描述】:

我有一个转换器,当我将它用作窗口上的静态资源时效果很好,如下所示

<UserControl.Resources>
           <local:ValidationErrorConverter x:Key="validationErrorConverter"/>       
</UserControl.Resources>

我有一个 ResourceDictionary 定义了我的控件 ControlTemplates 和 Styles ,我不知道在哪里引用我的转换器作为 StaticResource 以便能够在我的样式上使用它,如下所示

<Style.Triggers>
        <Trigger Property="Validation.HasError" Value="true">
            <Setter Property="ToolTip" Value="{Binding 
RelativeSource={RelativeSource Self}, 
Path=(Validation.Errors).CurrentItem, 
Converter={StaticResource HERE??}}"/>
        </Trigger>
    </Style.Triggers>

【问题讨论】:

    标签: c# wpf xaml resourcedictionary staticresource


    【解决方案1】:

    只需创建一个新的,如果样式需要转换器,只需使用Style.Resources 即可。或者你可以使用元素语法:

    <Setter.Value>
        <Binding Path="(Validation.Errors).CurrentItem"
                 RelativeSource="{RelativeSource Self}">
            <Binding.Converter>
                <local:ValidationErrorConverter />
           </Binding.Converter>
        </Binding>
    </Setter.Value>
    

    【讨论】:

    • 是的,但是我必须在每个控件样式上都这样做,我想设置一次并应用于所有控件,如果我必须在 ResourceDictionary 上重复它们,我可以像我一样做在我的问题帖子中的代码中说明
    • @Musaab:如果你在App.xaml 中的Application.Resources 中放置一些东西,你可以使用StaticResource 从任何地方引用它,也许这会有所帮助,但不太清楚你的意思......
    • 我将 ResourceDictionary 放在我的 App.Resources 中,以充当我的 DynamicResource。如果我将 也放在 App.Resources 中,则发生异常,我将编辑我的问题以更好地解释它
    • 谢谢我找到了我要找的东西,使用元素语法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2017-11-24
    • 2018-02-06
    相关资源
    最近更新 更多