Я пытаюсь реализовать новый элемент управления (XGrid), который содержит DataGrid.Как определить столбцы для внутреннего DataGrid в настраиваемом элементе управления
В большинстве случаев я напрямую привязываю данные через DependencyProperty и устанавливаю AutoGenerateColumns в True
.
Теперь, в конкретном случае, мне нужно настроить столбцы DataGrid вручную. Я думал о чем-то вроде:
<local:XGrid AutoGenerateColumns="False" DataContext="{Binding SourceList}">
<local:XGrid.Columns>
<DataGridTextColumn Header="T1" Binding="{Binding Path=.Value1}"/>
<DataGridTextColumn Header="T2" Binding="{Binding Path=.Value2}"/>
<DataGridTextColumn Header="T3" Binding="{Binding Path=.Value3}"/>
</local:XGrid.Columns>
</local:XGrid>
ли это, или что-то подобное, возможно?
--- EDIT 1 ---
Xgrid на самом деле не является производным от DataGrid
Да, это работает, но теперь я получаю 'ArgumentException', когда я открываю мой модуль, содержащий Xgrid второй раз, сказав следующее: ' Дополнительная информация: DataGridColumn с заголовком T1 уже существует в коллекции столбцов DataGrid. Сетки данных не могут совместно использовать столбцы и не могут содержать повторяющиеся экземпляры столбцов. ' – Xenogenesis
У вас есть этот' dataGrid.Columns.Clear(); 'in place? – Muds
Да, я проследил экземпляр XGrid, зарегистрировав UID, указанный в конструкторе, когда я закрою свой модуль и снова открою его (Open означает создание нового экземпляра для каждого нового модуля(); ... Тот же экземпляр XGrid используется! Его не утилизируют или что-то в этом роде? Кажется, он используется повторно? – Xenogenesis