6

下の図に示すように、列が繰り返されるデータグリッドが必要です。

ここに画像の説明を入力

これは 1 つのデータグリッドであり、列が繰り返されます。wpf windows datagrid でこれを行うにはどうすればよいですか?

ありがとう、

4

5 に答える 5

2

3つ(またはそれ以上)のデータグリッドを水平に配置し、ページングを使用してデータをバインドできませんか..最初の10(n)レコードをグリッド1に、次の10(n)レコードをグリッド2に同様に意味します.

LINQ で利用可能なSkipメソッドとTakeメソッドを使用して、ページングを行うことができます...

record.Skip((page - 1)*pageSize).Take(pageSize);
于 2013-07-12T19:07:40.807 に答える
1

次のようなことができます。

<Window.Resources>
    <Controls:DataGrid x:Key="YourDataGrid" AutoGenerateColumns="False" ItemsSource="{Binding }">
        <Controls:DataGrid.Columns>
            <Controls:DataGridTextColumn Header="FirstName" Binding="{Binding Path=FirstName}" IsReadOnly="True"/>
            <Controls:DataGridTextColumn Header="SecondName" Binding="{Binding Path=LastName}" IsReadOnly="True"/>   
        </Controls:DataGrid.Columns>
</Controls:DataGrid>

 <StackPanel Orientation="Horizontal">
    <ContentControl Content="{StaticResource YourDataGrid}" DataContext="{Binding Path=FirstDataContext}"></ContentControl>
    <ContentControl Content="{StaticResource YourDataGrid}" DataContext="{Binding Path=SecondDataContext}"></ContentControl>
</StackPanel>
于 2013-07-18T08:45:03.113 に答える
1

これは、繰り返し列を手動で に追加することで実現できますDatagrid。ヘッダーは一意である必要はありません:

<DataGrid ItemsSource="{Binding Path=Contacts}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="header1" Binding="{Binding Name}"/>
        <DataGridTextColumn Header="header2" Binding="{Binding Age}"/>
        <DataGridTextColumn Header="header1" Binding="{Binding Name}"/>
        <DataGridTextColumn Header="header2" Binding="{Binding Age}"/>
    </DataGrid.Columns>
</DataGrid>
于 2013-07-12T12:15:02.057 に答える
1

あなたが何を求めているのかよくわかりませんが、私が正しければ、「同じ」列を異なるデータで繰り返したいと考えています。

あなたはこれを行うことができますが、あなたが考える方法ではありません. これは、ビュー モデルを使用して、ビューが読み取れるようにデータをカプセル化する目的です。実際に必要なのは、項目を含めて同じヘッダーとスタイルを持つ列ですが、それはビュー モデルの異なるプロパティにバインドされます。

于 2013-07-16T18:34:46.547 に答える