Я пытаюсь привязать массив строк к столбцу Datagrid. У меня есть переменная типа int, но я хочу показать строковое значение. Итак, моя идея состоит в том, чтобы связать массив строк и использовать значение int в качестве индекса.
public class TestStep : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged([CallerMemberName] string propName = null)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
}
public int Mode { get; set; }
public string[] ModeName { get; set; } = { "name1", "name2" };
}
Итак, XAML, который я использую, это:
<DataGrid ItemsSource="{Binding TestStep , UpdateSourceTrigger=PropertyChanged}"
<DataGrid.Columns>
<DataGridTextColumn Header="Mode ID" Binding="{Binding Mode }" />
<DataGridTextColumn Header="Mode ID Name" Binding="{Binding ModeName[0]}" />
<DataGridTextColumn Header="Mode ID Name" Binding="{Binding ModeName[Mode]}" />
</DataGrid.Columns>
</DataGrid>
Если я использую Binding="{Binding ModeName[0]}"
, я получаю правильное значение в таблице данных
Если я использую Binding="{Binding ModeName]Mode]}
, я получаю ошибку привязки:
System. Windows. Ошибка данных: 40: Ошибка пути BindingExpression: '[ ] 'свойство не найдено в' объекте '' 'String []' (HashCode = 62367561) '. BindingExpression: путь = имя режима [{1}]; DataItem = 'TestStep' (HashCode = 4862753); целевой элемент - TextBlock (Name = ''); целевым свойством является 'Text' (type 'String')
Почему я не могу определить режим переменной в блоке []
?
Спасибо
С уважением