文本不会显示在ComboBox中选定的项目

我问这个问题真的很愚蠢,但是我已经打了8个多小时了。 如何选中项目以在选中时在我的WPFcombobox中显示其文本?

选项

以上是一个选项对话框,允许用户select和configuration可用的锦标赛显示。 问题是selectcombobox项目显示UserControl而不是显示名称。

在窗口加载

//_displayer is a private member populated using MEF //[ImportMany(typeof (IDisplayer))] //private IEnumerable<IDisplayer> _displayers; DisplayTypeComboBox.ItemsSource = _displayers; 

ComboBox Xaml:

  <ComboBox Name="DisplayTypeComboBox" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" IsEditable="False" SelectionChanged="DisplayTypeComboBox_SelectionChanged"> <ComboBox.ItemTemplate> <DataTemplate> <ComboBoxItem Content="{Binding DisplayerName}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> 

IDisplayer:

 public interface IDisplayer { string DisplayDataLocation { get; set; } string DisplayerName { get; } string DisplayerDescription { get;} bool WatcherEnabled { get; } UserControl View { get; } string DisplayerImageLeft { get; set; } string DisplayerImageRight { get; set; } void Update(); } 

我遇到了同样的事情。 花了我一会儿。 (你应该使用ItemContainerStyle而不是ItemTemplate。因为ComboBox用ComboBoxItem包装内部项目 – 你基本上用另一个包装了ComboBoxItem。

检查显示名称成员实际包含的内容。 它最有可能包含UserControl名称而不是显示名称。

尝试使用TextBlock绑定到DisplayerName而不是ComboboxItem。 我相信,当您设置itemsource时,组合控件将自动包裹在组合控件项目控件中的项目。

编辑:我误解了你的问题。 尝试设置SelectionBoxItemTemplate。

我甚至不想考虑花了多少小时来解决一个简单的问题。 为什么很难让选定的文本显示为选定的值? 我放弃了,WPF你打我提交。 我改变了控制列表框它占用更多的空间来显示可选项目,但至少它的工作原理。

  <ListBox Name="DisplayTypeComboBox" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" SelectionChanged="DisplayType_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <Label Content="{Binding DisplayerName}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 

替代文字