如何使用MVVM折叠Silverlight DataGrid组?

时间:2010-06-10 22:11:37

标签: c# silverlight datagrid mvvm grouping

我在Silverlight应用程序中使用MVVM。所以我使用PagedCollectionView作为我的View Model的属性将它绑定到DataGrid ItemSource。但我有这个要求:“加载用户控件时,网格中的所有组都应该崩溃。”当我使用页面集合时,我使用了以下代码:

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

现在我有了解开组的代码,但是我发现的唯一一段代码需要在UI上运行,所以将它链接到我的ViewModel有点困难,因为那个collectionview被填充为Async,所以我不知道知道如何通知组合已经填充到UI以运行此代码;甚至更好,如何将我的ViewModel中的折叠指令发送到UI。

你能帮我吗?

1 个答案:

答案 0 :(得分:2)

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);
 }
}