我想创建一个完全动态的数据矩阵。例如,
Column1 Column2 Column3....
id1 id11 id12 id13...
id2 id21 id22 id23...
. . . .
. . . .
有人可以帮我解决XAML中以上述方式显示数据的代码吗?我的意思是我不确定我是否应该使用listview或datagrid或其他任何东西来显示数据。所以如果有人可以使用一些示例代码并帮我解决它..
答案 0 :(得分:4)
您可以使用我对this问题的回答。它是一个子类DataGrid,用于显示,编辑和数据处理1D或2D数组以及动态大小列表。它可以从here下载。
假设您将此2D字符串数组作为属性
public string[][] String2DArray { get; set; }
然后你可以通过添加对DataGrid2DLibrary.dll的引用并添加命名空间将它绑定到DataGrid2D
xmlns:dg2d="clr-namespace:DataGrid2DLibrary;assembly=DataGrid2DLibrary"
<dg2d:DataGrid2D Name="c_dataGrid2D"
UseModifiedDataGridStyle="True"
ItemsSource2D="{Binding String2DArray}"/>
输出将如下所示
答案 1 :(得分:1)
本文主要介绍如何将WPF ListView绑定到DataMatrix(具有动态列的未定义数据源),其中直到运行时才能确定ListView列。
答案 2 :(得分:1)
您可以在Binding a ListView to a DataMatrix
上试用这篇文章
答案 3 :(得分:0)
是的,听起来你可以很好地利用<Grid>
标签。所以,复制你的例子:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="25" />
<RowDefinition Height="25" />
<RowDefinition Height="25" />
<RowDefinition Height="25" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="1" Grid.Row="0">Column1</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="0">Column2</TextBlock>
<TextBlock Grid.Column="3" Grid.Row="0">Column3</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="1">id1</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="1">id11</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="1">id12</TextBlock>
<TextBlock Grid.Column="3" Grid.Row="1">id13</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="2">id2</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="2">id21</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="2">id22</TextBlock>
<TextBlock Grid.Column="3" Grid.Row="2">id23</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="3">.</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="3">.</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="3">.</TextBlock>
<TextBlock Grid.Column="3" Grid.Row="3">.</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="4">.</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="4">.</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="4">.</TextBlock>
<TextBlock Grid.Column="3" Grid.Row="4">.</TextBlock>
</Grid>
您还可以使用WPF 4.0中提供的WPF数据网格。如果您不能使用4.0 Framework,那么您仍然可以在.NET 3.5 SP1的codeplex版本下使用datagrid。见WPF Toolkit
你也可以使用ListView,是的。 WPF非常灵活,因此您有很多选择。如上所述编程Grid标签,或使用datagrid或listBox或listView,并在后3个选项上设置ItemSource。