私は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;
}
}