Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 同步嵌套网格行为_Wpf_Xaml_C# 4.0_Syncfusion - Fatal编程技术网

Wpf 同步嵌套网格行为

Wpf 同步嵌套网格行为,wpf,xaml,c#-4.0,syncfusion,Wpf,Xaml,C# 4.0,Syncfusion,嗨,我有一个GridDataControl,它通过一个关系与子网格相关。父网格上应用了一种行为,该行为格式化网格并获取列标题名称。我想对子网格应用同样的行为。两个网格的数据格式相同,但是主子网格不可访问,只有其列通过GridDataVisibleColumn属性访问 关于如何做到这一点有什么想法吗?在为父网格使用行为时,您可以使用父网格的RecordExpanded事件获取子网格,如下面的代码片段所示 代码段: protected override void OnAttached() {

嗨,我有一个GridDataControl,它通过一个关系与子网格相关。父网格上应用了一种行为,该行为格式化网格并获取列标题名称。我想对子网格应用同样的行为。两个网格的数据格式相同,但是主子网格不可访问,只有其列通过GridDataVisibleColumn属性访问


关于如何做到这一点有什么想法吗?

在为父网格使用行为时,您可以使用父网格的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事件。同样,您可以使用嵌套网格中的任何事件来获取详细信息。

。。。为什么子网格不可访问?在什么情况下?它是如何通过关系联系起来的?也许只是我,但我不确定你到底在问什么,朋友。。。