2012-11-22 2 views
1

wpf의 최신 버전입니다. 나는 .net 3.5에서 wpf를 사용하는 작은 응용 프로그램을 개발 중이다. 데이터 테이블 바인딩 된 wpf toolkid DataGrid 컨트롤이 있습니다. 이제 데이터 그리드에 데이터를 그룹화 할 수 없습니다.데이터 테이블에 바인드 된 WPF Toolkid Datagrid의 데이터를 그룹화하는 방법

나는 이것을 어떻게 할 수 있습니까? 여기

에 .. 자원 바인딩을 사용 하나

다음
 <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; 
     } 

    } 

답변

0

@sovantha 어디서나 데이터 그리드 바인딩을 볼 수 아니다 behide 내 코드 내 xmal입니다 XAML에서 DataGrid ItemSource를 아래와 같이 코드 뒤에 바인딩하십시오.

testTakerGrid.ItemSource = view; 
+0

DataGrid의 ItemsSource = "{Binding}"을 내 코드에서 nd this.DataContext = takerDs.TestTakers; 그리드는 예상대로 데이터를 표시합니다. – sovantha

+0

CollectionView에서 그룹화가 활성화되어 있으므로 DataContext를 뷰에 바인딩 해보십시오. –

+0

내 코드를 다음으로 변경했습니다. this.DataContext = view; 정상적으로 그리드가 표시되지만 그룹화는 나타나지 않습니다. – sovantha