我创建了一个名为matrix (matrix [,] matrix;)的类,其中有I和j属性,它们指向相应的行和列。
例如,假设[1,6]单元格包含数字6(内容并不重要,因为它是一个示例),或者我想用红色表示它,因为6大于5。我想知道的是在网格(Grid, Datagrid,…)中表示这个矩阵的最好和最简单的方法是什么,例如将这个网格的[1,6]元素更改为红色,将其显示为原始矩阵。这是我的一个例子,但它不起作用,实际上它甚至没有创建一个Grid:
System.Data.DataTable dt = new System.Data.DataTable();
...loop for dt...
dt.Columns.Add();
dt.Rows.Add();
datagrid1.DataSource = dt;
提前感谢!
这只是众多可能的解决方案之一:
<ItemsControl ItemsSource="{Binding SomeMatrix}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid IsItemsHost="True" Columns="{Binding SomeMatrix.Columns}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding}" HorizontalContentAlignment="Center" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然后,U可以通过修改项模板来更改单个单元格的外观。唯一的先决条件是您的Matrix
类应该实现IEnumerable
接口,并且应该以一列接一列、一行接一行的顺序生成项。