2015-04-13 4 views
0

Я не могу найти, как это сделать.Binding RowDetails в WPF DataGrid

Я не понимаю, почему datacontext для rowdetailstemplate становится datacontext родителя datagrid. Когда он очистит, следует выбрать rowitem из источника данных datagrid.

<DataGrid Grid.Row="1" x:Name="DataGrid" ItemsSource="{Binding Collection}" 
<DataGrid.RowDetailsTemplate> 
    <DataTemplate>   
     <TextBox Text="{Binding WhyDoesThisBindingUseDataContextOfDatGridParentAndNotTheRowDataObject}"/> 
    </DataTemplate> 
</DataGrid.RowDetailsTemplate></DataGrid> 

Как я могу получить rowdataobject в качестве datacontext для моего шаблона?

+1

ну, как правило, это rowItem, есть проблема smwhere else – Muds

ответ

0

Посмотрите на визуальное дерево.

enter image description here

объект, который вы привязывается к ItemsSource не относится к RowDetailsTemplate. Требуется DataContext для родителя DataGrid.

+0

Ну, это решение, чтобы игнорировать то, что говорит intellisense, и просто обрабатывать эти элементы управления так же, как если бы rowdetails просматривал строку для своих данных. Он работает сейчас, но я получаю предупреждения повсюду в моем RowDetailstemplate, что связанные свойства не найдены, даже если они есть. –