带有连接值的WPF XamComboBox DisplayMemberPath

时间:2013-01-31 17:59:06

标签: wpf xaml combobox infragistics

我有以下代码 -

<igEditors:XamComboEditor ItemsSource="{Binding Instances}"
                                          Margin="5,2,5,2" Width="175" HorizontalAlignment="Left"
                                          SelectedItem="{Binding SelectedInstance,Mode=TwoWay,NotifyOnValidationError=True,ValidatesOnDataErrors=True,ValidatesOnExceptions=True}"
                                          >
                    <igEditors:XamComboEditor.ComboBoxStyle>
                        <Style TargetType="ComboBox">
                            <Setter Property="ItemTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <TextBlock>
                                            <TextBlock.Text>
                                                <MultiBinding StringFormat="{}{0} ({1})">
                                                    <Binding Path="Name" />
                                                    <Binding Path="Id" />
                                                </MultiBinding>
                                            </TextBlock.Text>
                                        </TextBlock>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>                        
                    </igEditors:XamComboEditor.ComboBoxStyle>
                </igEditors:XamComboEditor>

当我从viewmodel设置SelectedInstance时,组合框显示对象的类型。如果我然后进行选择,它会正确显示,但是我单击组合框,失去焦点,它会恢复为对象类型。如果我手动将DisplayMemberPath设置为Name,它可以正常工作,但我真的需要它作为displaymemberpath的连接值。

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:2)

这个问题的答案是使用ValueToDisplayTextConverter和自定义转换器。更多细节可以在这里找到 -

http://www.infragistics.com/community/forums/p/77378/390782.aspx