我有一个类“Uid_Id_Name”和一个ENUM“E_UidIdName_Type”
public class Uid_Id_Name
{
public string Uid { get; set; } = "";
public string Id { get; set; } = "";
public string Name { get; set; } = "";
}
public enum E_UidIdName_Type
{
Name,
NameShort
}
我有一个ComboBox,他的项目是“Uid_Id_Name”
第一项:OK
第二项:“{x:Static my:E_UidIdName_Type.Name}”给予了必须转换为字符串的错误
<ComboBox SelectedValuePath="Uid" ItemTemplate="{StaticResource Uid_Id_Name_Template}">
<ComboBox.Items >
<BaseMontanari:Uid_Id_Name Uid="testUID" Id="testID" Name="testNAME"/>
<BaseMontanari:Uid_Id_Name Uid="{x:Static my:E_UidIdName_Type.Name}" Id="testID2" Name="testNAME2"/>
</ComboBox.Items>
</ComboBox>
我如何转换它?
我看到了类似的问题,但没有一个是关于一个枚举类财产的价值
2条答案
按热度按时间m528fe3b1#
不能对CLR属性使用绑定。它必须是一个依赖属性。
您应该通过编程方式 * 设置 * 数据项的值:
XAML:
XAML是一种标记语言。您可以使用
ItemTemplate
* 显示 * 枚举值:6g8kf2rb2#
如果你想这样做,你可以使用转换器。首先,你应该创建一个像这样的:
然后你必须在之前的资源中包含你的转换器(不要忘记添加转换器的命名空间:
在您的ComboBox中。项目: