2009-07-16 3 views
4

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

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

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

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

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

System.Windows.Data Error: 39 : BindingExpression path error: '' property not found on 'current item of collection' ''OrdersRow' (HashCode=680171)'. BindingExpression:Path=/; DataItem='OrdersRow' (HashCode=680171); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

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

ответ

3

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

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

<Combobox DataContext={Binding ColourList} 
      DataSource={Binding} <!--Bind to the datacontext --> 
      ForeColor={Binding/} <!--Bind to the currently selected item 
            in the datacontext --> 
      /> 
+0

@Martin: Да, именно здесь произошло мое замешательство. Я даже не пытался оставить путь, потому что я автоматически думал, что это относится к коллекции в целом. Спасибо за полное объяснение. – Noldorin

7

Вы пробовали игнорировать параметр Path?

<GridViewColumn Header="ColumnTitle" 
    DisplayMemberBinding="{Binding Converter={StaticResource myConverter}}"/> 
+0

@sixlettervariables: Спасибо за ваш ответ. Вы действительно правы в том, что пропустили параметр «Путь». Извините, но я должен был дать Мартину ответ за дополнительные детали. – Noldorin

Смежные вопросы