大多数网格使用MyGrid [row,col]等语法以编程方式引用特定单元格。
对于Silverlight DataGrid,如何在C#中完成此操作?我所有的例子 到目前为止看到只使用XAML。
感谢。
答案 0 :(得分:1)
如果将itemssource绑定到observablecollection,则可以通过修改该集合来获取行和卷。 ui自动传播更改
答案 1 :(得分:1)
首先,您可以使用简单的网格。并通过使用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;
}
}