【发布时间】:2009-12-15 16:24:35
【问题描述】:
大多数网格使用诸如 MyGrid[row, col] 之类的语法以编程方式引用特定单元格。
这是如何在 C# 中为 Silverlight DataGrid 完成的?我做过的所有例子 到目前为止只看到使用 XAML。
谢谢。
【问题讨论】:
标签: silverlight datagrid
大多数网格使用诸如 MyGrid[row, col] 之类的语法以编程方式引用特定单元格。
这是如何在 C# 中为 Silverlight DataGrid 完成的?我做过的所有例子 到目前为止只看到使用 XAML。
谢谢。
【问题讨论】:
标签: silverlight datagrid
如果将 itemssource 绑定到 observablecollection,您可以通过修改该集合来获取行和卷。 ui 会自动传播更改
【讨论】:
首先,您可以使用简单的网格。并通过使用 Grid.SetColumn 和 Grid.SetRow 方法来引用任何网格单元格。
查看链接: http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.setcolumn.aspx http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.setrow.aspx
简短的例子:
XAML:
<Grid Height="Auto" Name="Mygrid" Width="Auto" />
c#:
string[] _names = new string[] { "first", "second", "three" };
Mygrid.ShowGridLines = true;
Mygrid.RowDefinitions.Clear();
Mygrid.ColumnDefinitions.Clear();
int rows = 3;
int cols = 3;
for (int r = 0; r < rows; r++)
Mygrid.RowDefinitions.Add(new RowDefinition());
for (int c = 0; c < cols; c++)
Mygrid.ColumnDefinitions.Add(new ColumnDefinition());
for (int c = 0; c < Mygrid.ColumnDefinitions.Count; c++)
{
int rowIndex = 0;
foreach (string s in _names)
{
var someControll = new TextBox();
someControll.Text = string.Format("{0} row in {1} column", s,c);
someControll.Height = 25;
Mygrid.Children.Add(someControll);
Grid.SetRow(someControll, rowIndex);
Grid.SetColumn(someControll, c);
rowIndex += 1;
}
}
【讨论】: