Combobox绑定和更新其他属性

时间:2011-07-11 15:52:15

标签: wpf xaml data-binding

我在数据网格中跟随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”属性?它绑定到“价值”属性

所以,我猜问题归结为将对象引用传递给值转换器,因此我可以根据对象中的其他数据设置实际转换值。

而且,如果你读完整个问题并且我一共做错了 - 我欢迎提出建议......

1 个答案:

答案 0 :(得分:0)

您不能将多个绑定值传递给常规Converter。

您可以设置一个MultiConverter,它接受两个参数(SelectedValue和ValueList)并返回正确的项目,或更改您的Converter以便它返回一个Key / Value对列表并绑定您的ComboBox的SelectedValuePath="Key"和{{ 1}}