2012-11-22 128 views
1

我是wpf的新手。我正在使用.net 3.5中的wpf開發一個小應用程序。我有一個wpf toolkid數據網格綁定與數據表控件。現在我無法將數據分組到我的數據網格上。如何將WPF Toolkid Datagrid中的數據綁定到數據表

誰能告訴我我該如何做到這一點?

這裏是我的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> 

這裏是我的代碼behide

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在你上面的代碼我給出我無法看到任何地方的數據網格結合..要麼使用資源綁定在XAML中綁定Datagrid ItemSource的代碼如下:

testTakerGrid.ItemSource = view; 
+0

我已經設置了datagrid的ItemsSource =「{Binding}」a nd在我的代碼behide我有this.DataContext = takerDs.TestTakers;網格按預期顯示數據。 – sovantha

+0

嘗試使用CollectionView中的分組綁定DataContext與視圖。 –

+0

我將我的代碼更改爲:this.DataContext = view;網格顯示正常,但不顯示分組。 – sovantha

相關問題