基本上,如果我有:
<TextBlock Text="{Binding MyValue, Converter={StaticResource TransformedTextConverter},
ConverterParameter=?}" />
您将如何传递某种类型的项目数组作为 ConverterParameter。我想我可以传入某种类型的分隔列表,但我不确定要使用哪种类型的分隔符,或者是否有内置的方法来传入参数数组?
最佳答案
ConverterParameter
是 object
类型,这意味着在解析 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/