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:此值"