Привязка к текущему элементу (WPF) - PullRequest
4 голосов
/ 16 июля 2009

Я пытаюсь привязать ListView элемент управления к DataTable, но система привязки WPF, похоже, жалуется на указанный мной путь привязки.

В качестве примера, GridViewColumn определяется следующим образом:

<GridViewColumn Header="ColumnTitle" 
 DisplayMemberBinding="{Binding Path=/, 
                        Converter={StaticResource myConverter}}"/>

Насколько я понимаю (и MSN, кажется, поддерживает меня), указание Path=/ должно сделать привязку к текущему элементу сбора данных.

Я получаю ошибку (в окне трассировки):

Ошибка System.Windows.Data: 39: Ошибка пути BindingExpression: '' свойство не найдено в 'текущем элементе коллекции' '' OrdersRow ' (HashCode = 680171). BindingExpression: Path = /; DataItem = 'OrdersRow' (HashCode = 680171); целевым элементом является TextBlock (Name = ''); цель свойство 'Текст' (тип 'Строка')

Это создает у меня впечатление, что / даже не правильный путь, и WPF ожидает чего-то после косой черты. Если это так, как еще я могу привязать к текущему элементу? Почему я получаю эту ошибку в первую очередь?

Ответы [ 2 ]

7 голосов
/ 16 июля 2009

Вы пытались опустить параметр Path?

<GridViewColumn Header="ColumnTitle"
     DisplayMemberBinding="{Binding Converter={StaticResource myConverter}}"/>
3 голосов
/ 16 июля 2009

Я думаю, что путаница заключается в том, что DataContext для GridViewColumn является , а не верхней коллекцией, но уже является элементом, связанным с этим столбцом, поэтому вам не нужно указывать путь.

Время, когда вы можете использовать путь, подобный этому, если DataContext вашего элемента управления представляет собой список, и вы хотите привязать к выбранному элементу. Возможный пример будет.

<Combobox DataContext={Binding ColourList}
          DataSource={Binding} <!--Bind to the datacontext -->
          ForeColor={Binding/} <!--Bind to the currently selected item 
                                   in the datacontext -->
          />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...