c# - ConverterParameter——有什么方法可以传递一些分隔列表吗?

标签 c# wpf xaml data-binding ivalueconverter

基本上,如果我有:

<TextBlock Text="{Binding MyValue, Converter={StaticResource TransformedTextConverter},
           ConverterParameter=?}" />

您将如何传递某种类型的项目数组作为 ConverterParameter。我想我可以传入某种类型的分隔列表,但我不确定要使用哪种类型的分隔符,或者是否有内置的方法来传入参数数组?

最佳答案

ConverterParameterobject 类型,这意味着在解析 XAML 时不会有任何隐式转换,如果您传入任何分隔列表,它只会被解释作为一个字符串。您当然可以在转换方法本身中拆分它。

但是由于您可能需要更复杂的对象,因此在处理静态值时可以做两件事:创建对象数组作为资源并引用它,或者使用元素语法就地创建数组,例如

1:

<Window.Resources>
    <x:Array x:Key="params" Type="{x:Type ns:YourTypeHere}">
        <ns:YourTypeHere />
        <ns:YourTypeHere />
    </x:Array>
</Window.Resources>

... ConverterParameter={StaticResource params}

2:

<TextBlock>
    <TextBlock.Text>
        <Binding Path="MyValue" Converter="{StaticResource TransformedTextConverter}">
            <Binding.ConverterParameter>
                <x:Array Type="{x:Type ns:YourTypeHere}">
                    <ns:YourTypeHere />
                    <ns:YourTypeHere />
                </x:Array>
            </Binding.ConverterParameter>
        </Binding>
    </TextBlock.Text>
</TextBlock>

关于c# - ConverterParameter——有什么方法可以传递一些分隔列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436156/

相关文章:

c# - 如何使日期时间选择器始终包含月份的最后一天,同时仅显示月份和年份?

c# - 在 C# 中实现树管理父子

c# - 从多边形构建 "inner stroke"效果

c# - 显示带有 WPF、Winforms 和双显示器的窗口

c# - 具有 maxlength 属性的文本框的工具提示

wpf - 什么是 XAML 标记扩展?

c# - 如何倒序显示 LongListSelector 的项目?

c# - 如何为线程池中的每个新线程初始化一个标有 ThreadStaticAttribute 的静态字段?

c# - 结构总是堆栈分配还是有时堆分配?

wpf - XAML:获取父背景