我在资源字典中定义了二维XAML数组,以存储WPF ComboBox数据内容,如下所示。 <x:Array x:Key="ThreatLevelArray" Type="{x:Type local:ThreatLevel}"> <local:ThreatLevel ThreatLevelName="Very Low" ThreatLevelNumber="0" /> <local:ThreatLevel ThreatLevelName="Low" ThreatLevelNumber="1" /></x:Array>此类在后面的代码中支持该数组。public class ThreatLevel{ public int ThreatLevelNumber { get; set; } public string ThreatLevelName { get; set; }}组合框显示“ ThreatLevelName”,并使用“ ThreatLevelNumber”提供的值更新数据库中的“ ThreatLevel”字段。<ComboBox x:Name="threatLevelComboBox" DisplayMemberPath="ThreatLevelName" IsEditable="True" IsReadOnly="True" ItemsSource="{StaticResource ThreatLevelArray}" SelectedValue="{Binding Path=ThreatLevel, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" SelectedValuePath="ThreatLevelNumber" Style="{StaticResource ComboBoxStyle}" />一切正常,但是我希望能够显示图像而不是“ ThreatLevelName”文本。我试过了 ....public class ThreatLevel{ public int ThreatLevelNumber { get; set; } public string ThreatLevelName { get; set; } public Image ThreatLevelImage { get; set; }}但是以下内容为我提供了错误:““图像”的TypeConverter不支持从字符串转换”。 <x:Array x:Key="ThreatLevelArray" Type="{x:Type local:ThreatLevel}"> <local:ThreatLevel ThreatLevelName="Very Low" ThreatLevelNumber="0" ThreatLevelImage="/RMS_EF6;component/RMS_Images/VeryLow.png"/> <local:ThreatLevel ThreatLevelName="Low" ThreatLevelNumber="1" ThreatLevelImage="/RMS_EF6;component/RMS_Images/Low.png"/></x:Array>我该如何解决此错误,并使用此过程创建如下所示的ComboBox。<ComboBox x:Name="threatLevelComboBox" DisplayMemberPath="ThreatLevelImage" IsEditable="True" IsReadOnly="True" ItemsSource="{StaticResource ThreatLevelArray}" SelectedValue="{Binding Path=ThreatLevel, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" SelectedValuePath="ThreatLevelNumber" Style="{StaticResource ComboBoxStyle}" />
1 回答
- 1 回答
- 0 关注
- 159 浏览
添加回答
举报
0/150
提交
取消