Синтаксис для привязки к индексатору текущего элемента данных по умолчанию в WPF? - PullRequest
0 голосов
/ 18 августа 2010

У меня есть Listbox с источником источника, установленным в ObservableCollection of DataRow.Допустим, для каждого примера в DataRow есть 5 столбцов.

В шаблоне данных ListBox у меня есть 5 текстовых блоков (по 1 на каждый столбец).Мой вопрос: как я могу привязаться к индексатору строки, чтобы получить значение столбцов?

Вот моя попытка, но ничего не отображается, поэтому у меня должен быть неправильный синтаксис:

<DataTemplate>
    <StackPanel>
        <TextBlock Text="{Binding Path=.[0]}" />
        <TextBlock Text="{Binding Path=.[1]}" />
        <TextBlock Text="{Binding Path=.[2]}" />
        <TextBlock Text="{Binding Path=.[3]}" />
        <TextBlock Text="{Binding Path=.[4]}" />
    </StackPanel>
</DataTemplate>

Iзнаю, что индексаторы можно использовать в привязках, потому что я уже сделал что-то вроде этого:

<DataTemplate>
    <StackPanel>
        <TextBlock Text="{Binding Path=Collection[0].Name}" />
        <TextBlock Text="{Binding Path=Collection[1].Name}" />
        <TextBlock Text="{Binding Path=Collection[2].Name}" />
        <TextBlock Text="{Binding Path=Collection[3].Name}" />
        <TextBlock Text="{Binding Path=Collection[4].Name}" />
    </StackPanel>
</DataTemplate>

Буду признателен за любую помощь по исправлению моего синтаксиса.

1 Ответ

0 голосов
/ 18 августа 2010

Ваш синтаксис должен делать.Тем не менее, следующее также должно идти:

<DataTemplate> 
    <StackPanel> 
        <TextBlock Text="{Binding Path=[0]} /> 
        <TextBlock Text="{Binding Path=[1]} /> 
        <TextBlock Text="{Binding Path=[2]} /> 
        <TextBlock Text="{Binding Path=[3]} /> 
        <TextBlock Text="{Binding Path=[4]} /> 
    </StackPanel> 
</DataTemplate> 

Проверьте ваш ItemsSource.Действительно ли он предоставляет индексатор типа int?Может быть, у вас есть индексатор другого типа или даже нет индекса.Может быть, это другой объект, чем вы ожидаете?

...