2015-07-10 2 views
0

В моем проекте у меня есть сетка данных с тремя столбцами столбцов со списком. а поле со списком - связывание данных с помощью xaml. Но когда я запускаю проект, поле со списком показывает system.data.dataRowView. вот мой код для ячейки сетки данныхКомбинированная коробка внутри столбца шаблона сетки данных показывает system.data.datarowview

<DataGridTemplateColumn Header="Category" Width="*" x:Name="categoryColumn"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <ComboBox x:Name="categoryBox" 
          IsEditable="True" 
          fa:FocusAttacher.Focus="True" 
          controls:TextBoxHelper.ClearTextButton="True" 
          controls:TextBoxHelper.SelectAllOnFocus="True" 
          controls:TextBoxHelper.Watermark="Category" 
          MaxDropDownHeight="125" 
          SelectionChanged="CategoryBox_OnSelectionChanged" 
          IsSynchronizedWithCurrentItem="True" 
          DisplayMemberPath="{Binding CategoriesCollection.Columns[1]}" 
          SelectedValuePath="{Binding CategoriesCollection.Columns[0]}"  
          ItemsSource="{Binding Path=DataContext.CategoriesCollection.DefaultView, 
          RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}" /> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 

Почему он не отображает правильные данные. Может ли кто-нибудь предложить мне способ исправить это?

+0

Избавиться от 'CategoriesCollection.' в пути связывания для' DisplayMemberPath' и 'SelectedValuePath' Он должен быть просто' {Binding Path = Columns [1]} ' –

+0

не работает – Sony

+0

Вы все еще получаете' system. data.dataRowView' –

ответ

1

Код DisplayMemberPath="{Binding CategoriesCollection.Columns[1]}" терпит неудачу, так как ему необходимо присвоить относительную привязку источника так же, как и обязательное обязательство, которое вы представляете.

Либо обеспечить надлежащее связывания пути DisplayMember

{Binding Path=DataContext.CategoriesCollection.Columns[1], 
     RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"` 

или жесткий код, чтобы это было имя свойства целевого запрашиваемое.