Silverlight 在datagrid中动态创建列
我正在尝试创建一个列数和行数可变的数据网格。我可以创建列,但我不知道如何插入内容Silverlight 在datagrid中动态创建列,silverlight,Silverlight,我正在尝试创建一个列数和行数可变的数据网格。我可以创建列,但我不知道如何插入内容 _dataGrid.Columns.Add(new DataGridTextColumn { Header = "Column 0", Binding = new Binding("0")
_dataGrid.Columns.Add(new DataGridTextColumn { Header = "Column 0",
Binding = new Binding("0")
}
);
我有我想要添加到字符串[,]中的所有数据。我不知道如何准备一个实现IEnumerable的数据结构,以便设置
_dataGrid.ItemsSource = GenerateData();//I'd expect to return a Dictionary["0"]=List<string>(){"1","2","3"} to bind to but it doesn't work
\u dataGrid.ItemsSource=GenerateData()//我希望返回一个要绑定的字典[“0”]=List(){“1”、“2”、“3”},但它不起作用
如果我想包含一个包含“1”、“2”、“3”的列,我需要从GenerateData返回什么样的数据结构
提前感谢。我昨晚遇到了这个问题,我想手动将内容添加到不同的行和单元格等 您可以通过以下方式通过编程实现:
Grid.SetRow(myUserControl, 1);
Grid.SetColumn(myUserControl, 1);
myGrid.Children.Add(myUserControl);
它确实完全绕过了数据绑定模型,但有时这正是您所需要的。归根结底,ItemsSource必须是一个实现IEnumerable的对象。构成集合的对象必须具有与在列上设置的绑定匹配的属性。DataTable可能是最自然的入门之地。ItemSource可以是任何东西。。。我在下面演示了一个匿名类型数组,但如果需要双向数据绑定,则必须使用命名类型(匿名类型生成单向绑定)
grid.Columns.Add(new DataGridTextColumn {
Header = "Foo",
Binding = new Binding("Foo")
});
grid.Columns.Add(new DataGridTextColumn {
Header = "Bar",
Binding = new Binding("Bar")
});
grid.ItemsSource = new [] {
new { Foo = "asdf", Bar = "asdf" },
new { Foo = "asdf", Bar = "asdf" },
new { Foo = "asdf", Bar = "asdf" }
}