Ich möchte ein Benutzersteuerelement enthält ein Datagrid erstellen und dann die Spalten direkt in meinem Usercontrol definieren:Bindung eine WPF-Datagrid in einem Usercontrol
<my:ControlContainingDataGrid ItemsSource="{Binding}">
<my:ControlContainingDataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Property1}" Header="Property 1"/>
In der Usercontrol ich die Spalten des Datagrid aussetzen:
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;
=> es funktioniert nicht: die an Property1 gebundene Spalte wird nicht erstellt.
Ich versuche, die Spalte programmatisch zu erstellen:
_datagGrid.Columns.Add(new DataGridTextColumn {
Header = "Property 1",
Binding = new Binding {
Path = new PropertyPath("Property1"),
Mode = BindingMode.TwoWay,
},
});
_datagGrid.ItemsSource = testList;
=> es nicht funktioniert: der Header angezeigt wird, aber jede Zeile meiner Datagrid leer ist (schlechte Bindung?).
1- Was ist der einfachste Weg, um die Spalten einer Datagrid über das Usercontrol in dem XAML-Teil zu binden?
2- Was ist der einfachste Weg, die Spalten eines DataGrid über das UserControl programmatisch zu binden?
Konnten Sie den XAML Ihres Benutzersteuerelements bekanntgeben? –