Wpf 同步嵌套网格行为
嗨,我有一个GridDataControl,它通过一个关系与子网格相关。父网格上应用了一种行为,该行为格式化网格并获取列标题名称。我想对子网格应用同样的行为。两个网格的数据格式相同,但是主子网格不可访问,只有其列通过GridDataVisibleColumn属性访问Wpf 同步嵌套网格行为,wpf,xaml,c#-4.0,syncfusion,Wpf,Xaml,C# 4.0,Syncfusion,嗨,我有一个GridDataControl,它通过一个关系与子网格相关。父网格上应用了一种行为,该行为格式化网格并获取列标题名称。我想对子网格应用同样的行为。两个网格的数据格式相同,但是主子网格不可访问,只有其列通过GridDataVisibleColumn属性访问 关于如何做到这一点有什么想法吗?在为父网格使用行为时,您可以使用父网格的RecordExpanded事件获取子网格,如下面的代码片段所示 代码段: protected override void OnAttached() {
关于如何做到这一点有什么想法吗?在为父网格使用行为时,您可以使用父网格的RecordExpanded事件获取子网格,如下面的代码片段所示 代码段:
protected override void OnAttached()
{
this.AssociatedObject.Model.Table.RecordExpanded += Parent_RecordExpanded;
base.OnAttached();
}
private void Parent_RecordExpanded(object sender, GridDataValueEventArgs<GridDataRecord> e)
{
var mainGridColumns = e.Value.Table.Model.TableProperties.VisibleColumns;
//Here header style is applied to first column in Parent grid.
mainGridColumns[0].HeaderStyle = new GridDataColumnStyle();
mainGridColumns[0].HeaderStyle.Background = Brushes.Red;
var childGridColumns = e.Value.ChildModels[0].Table.Model.TableProperties.VisibleColumns;
//Here, header style is applied to first column of nested grid.
childGridColumns[0].HeaderStyle = new GridDataColumnStyle();
childGridColumns[0].HeaderStyle.Background = Brushes.Brown;
e.Value.ChildModels[0].Table.CurrentCellValidating += Table_CurrentCellValidating;
}
void Table_CurrentCellValidating(object sender, GridDataCurrentCellValidatingEventArgs args)
{
foreach (var item in (sender as GridDataTable).Model.TableProperties.VisibleColumns)
{
if (item.MappingName == "OrderID")
{
// do action
}
}
}
您可以像上面的代码片段一样从ChildModels中获取子网格。ChildModels包含父网格中嵌套网格的数量
在这里,我更改了父网格和嵌套网格中第一列的标题样式,并且使用了嵌套网格的CurrentCellValidating事件。同样,您可以使用嵌套网格中的任何事件来获取详细信息。。。。为什么子网格不可访问?在什么情况下?它是如何通过关系联系起来的?也许只是我,但我不确定你到底在问什么,朋友。。。