2013-06-05 28 views
1

Silverlight 5問題。我可以通過使用PagedCollectionView作爲其ItemsSource(通過GroupDescriptions.Add)將DataGrid中的項目分組。沒問題。然而,我們是設計師(沒有經驗豐富的程序員)在原型上工作,並且在我們可以方便地創建樣本數據源/集合和樣本輸入數據的地方廣泛使用Blend「Data」窗口。不幸的是,GroupDescriptions.Add似乎不適用於通過「數據」窗口創建的這些基於xml的集合。綁定到* sample *數據源的DataGrid中的分組(使用Silverlight「數據」窗口)

有沒有辦法在DataGrid中使用分組而不必使用C#?還是有辦法將通過DataGrid中的「數據」窗口創建的示例數據分組?

我做了我的研究,我開始認爲這可能是不可能的。我的第一篇文章,對我很容易!謝謝 -

回答

1

如何看待的Silverlight的Datagrid組設計(混合或VS):

你可以嘗試創建一個XAML CollectionViewSource綁定到的樣本數據收集:

  1. 創建一個新的樣本數據命名爲「customerSampleData」;
  2. 添加具有2個子屬性(名稱,年齡)的集合屬性(名爲「集合」);
  3. PropertyGroupDescription的資源中添加CollectionViewSource

見的最後一步:

xmlns:compMod="clr-namespace:System.ComponentModel;assembly=System.Windows" 
xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.customerSampleData" 
... 
</UserControl.Resources> 
    <SampleData:customerSampleData x:Key="customerSampleData" d:IsDataSource="True"/> 

    <CollectionViewSource 
     x:Key="dataSource" 
     d:IsDataSource="True" 
     Source="{Binding Collection, Source={StaticResource customerSampleData}}"> 
     <CollectionViewSource.SortDescriptions> 
      <compMod:SortDescription PropertyName="Name" Direction="Ascending"/> 
     </CollectionViewSource.SortDescriptions> 
     <CollectionViewSource.GroupDescriptions> 
      <PropertyGroupDescription PropertyName="Age"/> 
     </CollectionViewSource.GroupDescriptions> 
    </CollectionViewSource> 
</UserControl.Resources> 

<Grid x:Name="LayoutRoot" Background="White" DataContext=""> 
    <sdk:DataGrid AutoGenerateColumns="False" DataContext="{Binding Source={StaticResource dataSource}}" ItemsSource="{Binding}" > 
     <sdk:DataGrid.Columns> 
      <sdk:DataGridTextColumn Binding="{Binding Name}" Header="Name"/> 
      <sdk:DataGridTextColumn Binding="{Binding Age}" Header="Age"/> 
     </sdk:DataGrid.Columns> 
    </sdk:DataGrid> 
</Grid> 
+0

冬青*!這工作 - 非常感謝! – epoetic

+0

<3混合;)當你在設計師看到你在做什麼時,它確實更容易。祝你好運 ! – Tonio

+0

是的,特別是像我們這樣的設計師。看到您可以調整xaml(例如,更改分組字段)並且立即重新繪製畫板!整潔: - ) – epoetic

相關問題