C# WPF组合框将文本绑定到选定项

C# WPF组合框将文本绑定到选定项,c#,wpf,C#,Wpf,我尝试将组合框绑定到集合: <ComboBox Margin="4 0 2 0" ItemsSource="{Binding YAxes}" SelectedItem="{Binding SelectedYAxis, Mode=TwoWay}" DisplayMemberPath="AxisTitle" SelectedValuePath="AxisTitle"/> 但是组合框上的文本永远不会更改为所选项目AxisTitle。如何将Selected

我尝试将组合框绑定到集合:

<ComboBox  Margin="4 0 2 0"
    ItemsSource="{Binding YAxes}"
    SelectedItem="{Binding SelectedYAxis, Mode=TwoWay}"
    DisplayMemberPath="AxisTitle"
    SelectedValuePath="AxisTitle"/>
但是
组合框
上的文本永远不会更改为所选项目
AxisTitle
。如何将
SelectedItem
AxisTitle
显示为
组合框的文本

UPD:文本永远不会显示,即使已明确设置:

<ComboBox  Margin="4 0 2 0"
    ItemsSource="{Binding XAxes}"
    SelectedItem="{Binding SelectedXAxis, Mode=TwoWay}"
    DisplayMemberPath="AxisTitle"
    Text="Asdasd"/>
以及上面的参考资料部分:

<DataTemplate x:Key="AxisCBTextTemplate">
    <TextBlock Text="{Binding AxisTitle}"/>
</DataTemplate>

UPD 3 我的意思是什么


显示某些选定文本的任务应该很简单,但有困难。

我找到了这个问题的根本原因。来自
XAxes
YAxes
的每个
IAxis
(它是一个轴对象)已显示在图形上(即绑定)。将它们绑定到其他控件(如ListBox)会导致异常:“必须先断开指定子项与当前父项Visual的连接,然后才能附加到新父项Visual。”,我在尝试将它们绑定到ListBox时发现了这一点


ComboBox捕捉到这样的异常,在任何情况下都不会输出StackTrace。在我的例子中,这个异常被包装到
NullReferenceException
中,并且只在单击没有设置
ItemTemplate
的组合框时发生。虽然我在细节上可能不完全正确,但用字符串集合替换
XAxes
YAxes
可以解决这个问题。

要显示任意文本组合框的
IsEditable
属性,应该设置为
true
,我希望将项目源YAxes设置为可观察的集合可以解决这个问题。@mohammedmazin nope,它不能帮助您的
IAxis
对象必须重写
Equals
以使组合框匹配
ItemsSource
列表中的
SelectedItem
。如何设置
SelectedYAxis
实例?它是来自
YAxes
(在这种情况下,SelectedItem应该在没有自定义
Equals
的情况下工作)的值还是从外部源加载的值(在这种情况下,
对象。Equals
与您的实例不匹配)?您不能混合使用
SelectedValuePath=“Axisttitle”
使用
SelectedItem
请删除
SelectedValuePath
并重试。我建议从最简单的
开始,并检查在选择项目时是否更新组合框文本
<ComboBox  Margin="4 0 2 0"
           ItemsSource="{Binding YAxes}"
           SelectedItem="{Binding SelectedYAxis, Mode=TwoWay}"
           ItemTemplate="{StaticResource AxisCBTextTemplate}"/>
<DataTemplate x:Key="AxisCBTextTemplate">
    <TextBlock Text="{Binding AxisTitle}"/>
</DataTemplate>