您应该在
UserControl
的构造函数中初始化集合属性:
public partial class DataGridWithHeader : UserControl
{
public DataGridWithHeader()
{
InitializeComponent();
SetValue(ColumnsProperty, new ObservableCollection<DataGridColumn>());
}
...
}
然后您还需要使用回调中的列填充实际的
DataGrid
,例如:
private static void OnColumnsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
DataGridWithHeader dataGridWithHeader = (DataGridWithHeader)d;
dataGridWithHeader.dataGrid.Columns.Clear();
if (dataGridWithHeader.Columns != null)
foreach (DataGridColumn column in dataGridWithHeader.Columns)
dataGridWithHeader.dataGrid.Columns.Add(column);
}