Я пытаюсь сделать некоторую привязку данных с использованием массива 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.
Я пробовал эту строку, но она не работает (вторая строка вызывает pb):
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Type"
Binding="{Binding Source={StaticResource ArrayReportType}, Path=[{Binding ReportType}]}" />
Я уверен, я близок к решению. Если я напишу прямо «Path = [1]», то это правильно.
Во время выполнения я получаю эту ошибку:
System.Windows.Data Ошибка: 40: Ошибка пути BindingExpression: свойство [[] 'не найдено для объекта' '' String [] '(HashCode = 14199578)'. BindingExpression: Path = [{Binding ReportType}]; DataItem = 'String []' (HashCode = 14199578); целевым элементом является TextBlock (Name = ''); Целевым свойством является «Текст» (тип «Строка»)
Любая помощь будет оценена.