Добавить DataGrid внутри DataGrids RowDetailsTemplate

это похоже на привязку, но строки в таблице сведений пусты. Что-то не работает / отсутствует?

Я также пробовал {Binding SubCustomers}

Субклиенты - это список родительского объекта.

Я могу привязать этот способ к отдельным полям, таким как FirstName и т. Д., Но не к подколлекции.

        <DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Source=SubCustomers}" />
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>

person Sonic Soul    schedule 25.05.2010    source источник


Ответы (1)


Проблема в том, что вы пытаетесь привязать свойство к DataContext родительского элемента, а не к этой конкретной строке. Итак, DataContext из RowDetails - это элемент строки, и для получения родительского свойства вам необходимо использовать RelativeSource привязки. Если вы привязываетесь к DataContext родительского элемента, вы можете «точка вниз» указать свойство, которое вам действительно важно:

<DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <DataGrid AutoGenerateColumns="True" 
                      ItemsSource="{Binding DataContext.SubCustomers, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
person Abe Heidebrecht    schedule 25.05.2010
comment
благодаря. Это по-прежнему не работает, и теперь вместо получения подробной сетки с пустыми строками я просто получаю пустое место. кроме того, если DataContext родительского элемента не относится к определенной строке, почему это работает правильно? ‹TextBlock Text = {Имя привязки} /› - person Sonic Soul; 25.05.2010
comment
Детали - это строка ... Я думал, что ваши Субклиенты были в родительском списке (я знаю, что это не имеет особого смысла, но именно так я прочитал ваш вопрос). В этом случае вы сможете выполнить привязку напрямую к списку. Список всегда заполняется? Если нет, то это ObservableCollection? - person Abe Heidebrecht; 25.05.2010