我在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。
你能帮我吗?
答案 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);
}
}