我尝试使用资源中定义的x:Array进行一些数据绑定,但是不知何故,即使代码编译通过也无法正常工作。 在资源中,我用以下方式定义了一个字符串数组:
<x:Array x:Key="ArrayReportType" Type="{x:Type sys:String}">
<sys:String>Energy Export</sys:String>
<sys:String>Cost Center Report</sys:String>
</x:Array>
我还有一个对象集合。其中一个属性被称为“ReportType”,是一个整数/枚举类型。 因此,我想进行数据绑定,以显示与ReportType相应的字符串,而不是int/enum。 我尝试了这行代码,但它不起作用(第二行引起了问题):
我也有一个对象集合。其中一个属性被称为“ReportType”,是一个整数/枚举类型。 因此,我希望进行数据绑定,以显示与ReportType相应的字符串,而不是int/enum。 我尝试了以下代码,但它没有起作用(第二行引起了问题):
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Type"
Binding="{Binding Source={StaticResource ArrayReportType}, Path=[{Binding ReportType}]}" />
我相信我已经接近解决方案了。如果我直接写“Path=[1]”,那么就是正确的。 但在运行时,我收到了以下错误信息:
System.Windows.Data Error: 40 : BindingExpression path error: '[]' property not found on 'object' ''String[]' (HashCode=14199578)'. BindingExpression:Path=[{Binding ReportType}]; DataItem='String[]' (HashCode=14199578); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
任何帮助都将不胜感激。
Path=[?]
可能期望一个常量或属性,而不是绑定扩展。 - Nicolas Repiquet