2013-06-05 1 views
1

Silverlight 5 вопрос. Я могу группировать элементы в DataGrid с помощью PagedCollectionView в качестве элемента ItemsSource (через GroupDescriptions.Add). Нет проблем. Тем не менее, мы являемся разработчиками (не опытные программисты), работающими над прототипом, и широко используем окно «Данные» Blend, где мы можем удобно создавать примеры источников данных/коллекций и образец вводить данные. К сожалению, GroupDescriptions.Add, похоже, не работает с этими коллекциями на основе xml, созданными в окне «Данные».Группировка в DataGrid, привязанная к * источнику данных * образца * (с использованием окна Silverlight «Data»)

Есть ли способ использовать группировку в DataGrid без использования C#? Или есть способ сгруппировать образцы данных, созданных в окне «Данные» в DataGrid?

Я сделал свое исследование, и я начинаю думать, что это может быть невозможно. Мой первый пост, легко на меня! Спасибо -

ответ

1

Как просмотреть группу Silverlight DataGrid в конструкторе (смесь или VS):

Вы можете попытаться создать XAML CollectionViewSource привязку к сбору образцов данных:

  1. Создать новый образец данных с именем «customerSampleData»;
  2. Добавить свойство коллекции (под названием «Коллекция») с 2 дополнительными свойствами (имя, возраст);
  3. Добавить CollectionViewSource в ресурсы с помощью PropertyGroupDescription.

Смотрите последний шаг:

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 Blend;) Это правда, что проще, когда вы видите в дизайнере то, что делаете. Удачи ! – Tonio

+0

Да, особенно для таких дизайнеров, как мы. Очень удобно видеть, что вы можете настроить xaml (например, изменить поле группировки), и он мгновенно перерисовывает монтажную панель! Neat: -) – epoetic

 Смежные вопросы

  • Нет связанных вопросов^_^