1

私はwpfの初心者です。.net3.5でwpfを使用して小さなアプリケーションを開発しています。データテーブルにバインドされているwpftoolkiddatagridコントロールがあります。現在、データグリッドでデータをグループ化できません。

どうすればこれを達成できますか?

これが私のxmalです

        <Window.Resources>
        <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander x:Name="exp" IsExpanded="True"
                                  Background="White"
                                  Foreground="Black">
                                    <Expander.Header>
                                        <TextBlock Text="{Binding AdmissionDate}"/>
                                    </Expander.Header>
                                    <ItemsPresenter />
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </Window.Resources>

<tk:DataGrid Grid.Row="2" Grid.ColumnSpan="4" Margin="5,0,5,0"
                     AutoGenerateColumns="False" 
                     Name="testTakerGrid" 
                     AlternationCount="2" 
                     AlternatingRowBackground="Azure"
                     RowHeaderWidth="40"
                     CanUserSortColumns="True"
                     IsSynchronizedWithCurrentItem="True"
                     GridLinesVisibility="None"
                     ItemsSource="{Binding}"
                     SelectionMode="Single"
                     CanUserAddRows="False" CanUserDeleteRows="False">
         <tk:DataGrid.GroupStyle>
                        <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
                            <GroupStyle.Panel>
                                <ItemsPanelTemplate>
                                    <tk:DataGridRowsPresenter/>
                                </ItemsPanelTemplate>
                            </GroupStyle.Panel>
                        </GroupStyle>
                    </tk:DataGrid.GroupStyle>
<tk:DataGrid.Columns>                
        <tk:DataGridTextColumn Header="Serial Id" Binding="{Binding Path=SerialId, Mode=OneWay, ValidatesOnDataErrors=True}" Width="60"/>              
        <tk:DataGridTextColumn Header="Name" Binding="{Binding Path=Name, Mode=OneWay, ValidatesOnExceptions=True}" Width="200"/>
        <tk:DataGridTextColumn Header="Gender" Binding="{Binding Path=Gender, Mode=OneWay, ValidatesOnExceptions=True}"/>
        <tk:DataGridTextColumn Header="Admission Date" Binding="{Binding Path=AdmissionDate, Mode=OneWay, ValidatesOnExceptions=True, StringFormat='d'}" Width="100" />
</tk:DataGrid.Columns>
</tk:DataGrid>

これが私のコードです

    public partial class MainApp : Window
    {
        TestTakerDataSet takerDs = new TestTakerDataSet();
        TestTakersTableAdapter takerTa = new TestTakersTableAdapter();

        CollectionView view;
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
                 takerTa.FillByTerm(takerDs.TestTakers, "2010-2011T1E");        

                        view = (CollectionView)CollectionViewSource.GetDefaultView(takerDs.TestTakers);
this.DataContext=view;
        }

    }
4

1 に答える 1

0

@sovantha上記のコードでは、データグリッドバインディングがどこにも表示されません。XAMLでリソースバインディングを使用するか、以下のようにコードビハインドでDatagridItemSourceをバインドします。

testTakerGrid.ItemSource = view;
于 2012-11-22T10:28:40.780 に答える