2013-11-20 7 views
0

На данный момент у меня есть datagrid, привязанный к набору данных. Datagrid, просто показывает строки с номерами 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

Я попытался объяснить это как можно лучше. Не совсем изменить ориентацию. он просто перечисляет 1-90 в mo в одном длинном столбце, я хочу сделать, чтобы начать новую строку/столбец каждую десятую строку. – 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

Смежные вопросы