我正在将datagrid分组到一个子级别。
像这样:
CollectionViewSource pageView = new CollectionViewSource();
pageView.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
pageView.GroupDescriptions.Add(new PropertyGroupDescription("SubCategory"));
tasksDataGrid.ItemsSource = pageView.View;
在我的情况下,某些记录没有Subcategory值。这些记录将显示在datagrid中Subcategory的空行组标题下。
我想直接在Category行组标题下显示,而不是空标题。
private void TaskDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
string RowGroupHeader = // how to get currently loading header value
if(RowGroupHeader == string.Empty)
{
e.RowGroupHeader.Height = 0;
}
}
我无法获取当前加载的RowGroupHeader值。如何在LoadingRowGroup事件中获取RowGroupHeader值。
帮助我。
答案 0 :(得分:1)
这解决了这个问题。
private void TaskDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
var RowGroupHeader = (e.RowGroupHeader.DataContext as CollectionViewGroup);
if (RowGroupHeader != null && RowGroupHeader.Items.Count != 0)
{
MasterTask task = RowGroupHeader.Items[0] as MasterTask;
if (task != null && task.SubCategoryName == null)
e.RowGroupHeader.Height = 0;
}
}
感谢djohnsonm的帮助。
答案 1 :(得分:0)
尝试此操作,但插入与Header值对应的VM和Property的名称。
private void TaskDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
{
string RowGroupHeader = (e.RowGroupHeader.DataContext as ParentVM).VMProperty
if(RowGroupHeader == string.Empty)
{
e.RowGroupHeader.Height = 0;
}
}