Я хотел бы создать UserControl, содержащий DataGrid, а затем определить столбцы непосредственно внутри моего UserControl:
<my:ControlContainingDataGrid ItemsSource="{Binding}">
<my:ControlContainingDataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Property1}" Header="Property 1"/>
В UserControl я раскрываю столбцы DataGrid:
static ControlContainingDataGrid()
{
ColumnsProperty = DependencyProperty.Register(
"Columns",
typeof(ObservableCollection<DataGridColumn>),
typeof(ControlContainingDataGrid),
new UIPropertyMetadata(new ObservableCollection<DataGridColumn>())
);
}
[Description("Columns"), Category("Columns")]
public ObservableCollection<DataGridColumn> Columns
{
get { return _datagGrid.Columns; }
}
public static readonly DependencyProperty ColumnsProperty;
=> это не работает: столбец, связанный с Property1, не создается.
Я пытаюсь создать столбец программно:
_datagGrid.Columns.Add(new DataGridTextColumn {
Header = "Property 1",
Binding = new Binding {
Path = new PropertyPath("Property1"),
Mode = BindingMode.TwoWay,
},
});
_datagGrid.ItemsSource = testList;
=> это не работает:заголовок отображается, но каждая строка моей DataGrid пуста (плохая привязка?).
1 - Какой самый простой способ связать столбцы DataGrid через UserControl в части XAML?
2 - Какой самый простой способ привязать столбцы DataGrid через UserControl программно?