2013-11-20 33 views
0

目前,我有一個綁定到數據集的數據網格。數據網格只是以遞增的順序顯示數字爲1-90的行。如何對齊datagrid行

目前它列出了一個真正的長列中的所有行。是否有可能讓它在每第十行開始一個新列,或者我只需要創建十行,共有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

你想改變DataGrid的方向嗎? –

+0

我試着盡我所能解釋它。沒有真正改變方向。它只在一個長列中的mo列出1-90,我想讓它每隔十行開始一個新的行/列。 – RSM

+1

看看WrapPanel。 http://msdn.microsoft.com/en-us/library/system.windows.controls.wrappanel%28v=vs.110%29.aspx –

回答

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的高度,直到它包裝在第十行。

+0

謝謝,這使我成爲尋找答案的麻煩,謝謝。 – RSM