Как свернуть группы Silverlight DataGrid с помощью MVVM? - PullRequest
2 голосов
/ 11 июня 2010

Я использую MVVM в приложении Silverlight. Поэтому я использую PagedCollectionView как свойство моей модели представления, чтобы связать его с DataGrid ItemSource. Но у меня есть это требование: «все группы в Grid должны быть свернуты при загрузке пользовательского элемента управления». Поскольку я использую представление коллекции страниц, я использовал этот код:

     this.PinesView = new PagedCollectionView(this.Pines);
     PinesView.GroupDescriptions.Add(new PropertyGroupDescription("Operador"));                        
     PinesView.GroupDescriptions.Add(new PropertyGroupDescription("Marca"));

Теперь у меня есть код для свертывания групп, но единственный фрагмент кода, который я обнаружил, должен быть запущен через пользовательский интерфейс, поэтому довольно сложно связать его с моей ViewModel, потому что это представление коллекции заполнено Async, поэтому знать, как общаться о коллекции уже заполнен пользовательский интерфейс для запуска этого кода; или, что еще лучше, как отправить эту инструкцию свертывания из моей ViewModel в пользовательский интерфейс.

Не могли бы вы мне помочь?

1 Ответ

2 голосов
/ 15 февраля 2011
public View()
{
 InitializeComponent();
 datagrid.LoadingRowGroup += new EventHandler<DataGridRowGroupHeaderEventArgs>(datagrid_LoadingRowGroup);
}

void datagrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
 datagrid.LoadingRowGroup -= datagrid_LoadingRowGroup;

 foreach(CollectionViewGroup group in (datagrid.ItemsSource as PagedCollectionView).Groups)
 {
  datagrid.CollapseRowGroup(group, true);
 }
}
...