目前,我有一个绑定到数据集的数据网格。 datagrid只是按递增顺序显示数字为1-90的行。
目前它列出了一个真实长列中的所有行。是否可以让它在每第十行开始一个新列,或者我只需要创建10列9行?
我的XAML
<Window x:Class="Bingo_Game.MainGame"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainGame" Height="500" Width="700">
<Grid>
<DataGrid Name="grid" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="244" Width="672" AutoGenerateColumns="True" ItemsSource="{Binding}" HeadersVisibility="None" />
</Grid>
</Window>
C#
namespace Bingo_Game
{
/// <summary>
/// Interaction logic for MainGame.xaml
/// </summary>
public partial class MainGame : Window
{
public MainGame()
{
InitializeComponent();
DataSet dataSet = new DataSet("myDS");
DataTable numbersTable = new DataTable("Numbers");
numbersTable.Columns.Add("Number", typeof(Int16));
for (int i = 1; i < 91; i++)
{
numbersTable.Rows.Add(i);
}
dataSet.Tables.Add(numbersTable);
grid.DataContext = numbersTable.DefaultView;
}
}
}
答案 0 :(得分:1)
您可以这样做:
<DataGrid ItemsSource="{Binding Items}"
AutoGenerateColumns="False"
VerticalScrollBarVisibility="Disabled">
<DataGrid.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</DataGrid.ItemsPanel>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding WhatEver}" />
</DataGrid.Columns>
</DataGrid>
关键是使用WrapPanel作为ItemsPanel并禁用垂直滚动条。
至于在每第十行开始一个新列,你只需要调整DataGrid的高度,直到它包裹在第十行。