我在数据网格中跟随XAML:
<DataTrigger Binding="{Binding Type}" Value="3">
<Setter TargetName="content" Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ComboBox
SelectedValue="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding List, Converter={Converters:DelimitedListToItemsSource}}">
</ComboBox>
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
它的作用 - 当“Type = 3
” - 单元格显示ComboBox
时。
比我在DelimitedListToItemsSource转换器中解析“List”属性
列表看起来像“Value 1|0|Value 2|1|Value 3|3
” - 基本上是分隔字符串中的键/值数组。
我想要做的是将SelectedValue绑定到我的分隔字符串的“value”部分。
我想我需要为ItemsSource
编写另一个值转换器,但我不知道如何在那里传递“List
”属性?它绑定到“价值”属性
所以,我猜问题归结为将对象引用传递给值转换器,因此我可以根据对象中的其他数据设置实际转换值。
而且,如果你读完整个问题并且我一共做错了 - 我欢迎提出建议......
答案 0 :(得分:0)
您不能将多个绑定值传递给常规Converter。
您可以设置一个MultiConverter,它接受两个参数(SelectedValue和ValueList)并返回正确的项目,或更改您的Converter以便它返回一个Key / Value对列表并绑定您的ComboBox的SelectedValuePath="Key"
和{{ 1}}