WPF Combobox显示实体名称在下拉列表中而不是DisplayMember Path



i有以下组合:

<ComboBox Name="cbBonusType" 
          DisplayMemberPath="BonusTypeName"  
          SelectedValuePath="ID" Width="150" Margin="10,0,0,0"                  
          SelectionChanged="cbBonusType_SelectionChanged"/>

运行时:选择项目时,ComboBox完全显示正确的字符串。但是,当Lotpbox打开时,Lotspbox中显示的命名为 ash as all 设置为实体名称:" Casama.wpf.ui.competiotion.bonustype"。

为什么要修复它?

最好的选择将覆盖对象上的tostring-这会在您的应用程序上提供一致的显示。

希望有帮助!

只需重新阅读您的问题 - 认为我的棍子的末端错误。您可以做的是将" ItemTemplate"设置在控件上,而不是这样;

;
      <ComboBox Name="cbBonusType" 
      ItemTemplate="{StaticResource DisplayTemplate}"
      SelectedValuePath="ID" Width="150" Margin="10,0,0,0"                  
      SelectionChanged="cbBonusType_SelectionChanged"/>

然后创建像这样的模板

    <DataTemplate x:Key="DisplayTemplate"
          DataType="{x:Type <YOURTYPE>}">
     <TextBlock Text="{Binding BonusTypeName}"/>
    </DataTemplate>

这是一个已知的问题,这是解决方法!

希望它有帮助..这次!:)

编辑:更新的代码只不过是其他任何人都想使用它!

Ste。

它比这更容易...在xaml中:

<ComboBoxItem Content="This Value" Tag="This Value"/>

然后在后面的代码中:

GetValue=ComboBoxName.selecteditem.tag.tostring()

getValue将是"此值"而不是" system.windows.controls.comboboxitem:此值"

最新更新