[英]Binding a WPF DataGrid inside a UserControl
我想創建一個包含DataGrid的UserControl,然后直接在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-通過XAML部分中的UserControl綁定DataGrid列的最簡單方法是什么?
2-以編程方式通過UserControl綁定DataGrid列的最簡單方法是什么?
我以編程方式執行此操作。 與您幾乎相同的代碼。 工作正常。 我從未嘗試綁定Columns集合本身,盡管我不明白為什么這不起作用。
您的信息有點含糊。 如果您要說的是列未顯示,則可能需要在創建表之前添加列。 如果行在列中顯示為空值,則您的綁定“ Property1”是錯誤的。
我不在XAML中工作,所以對此一無所知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.