Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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
C# 自动展开Xamdatarrid中的分层数据行_C#_Wpf_Xamdatagrid - Fatal编程技术网

C# 自动展开Xamdatarrid中的分层数据行

C# 自动展开Xamdatarrid中的分层数据行,c#,wpf,xamdatagrid,C#,Wpf,Xamdatagrid,我有一个具有分层数据的Xamdatagrid。我希望自动显示所有此类记录。这样用户就不必为每个记录单击+图标。您可以像这样处理Xamdatagrid的InitializeRecord事件(或覆盖OnInitializeRecord): 还有DataPresenterCommand.ExpandRecord,它扩展了网格的ActiveRecord。上述答案很好,但对于那些喜欢将其视为已定义行为的人来说,这里有另一种看法: public class AutoExpandXamDataGridReco

我有一个具有分层数据的Xamdatagrid。我希望自动显示所有此类记录。这样用户就不必为每个记录单击+图标。

您可以像这样处理Xamdatagrid的InitializeRecord事件(或覆盖OnInitializeRecord):


还有DataPresenterCommand.ExpandRecord,它扩展了网格的ActiveRecord。

上述答案很好,但对于那些喜欢将其视为已定义行为的人来说,这里有另一种看法:

public class AutoExpandXamDataGridRecordBehavior : Behavior<XamDataGrid>
{
    protected override void OnAttached()
    {
        if (AssociatedObject is XamDataGrid grid)
        {
            grid.InitializeRecord += OnInitializeRecord;
        }
    }


    protected override void OnDetaching()
    {
        if (AssociatedObject is XamDataGrid grid)
        {
            grid.InitializeRecord -= OnInitializeRecord;
        }
    }


    private void OnInitializeRecord(object sender, InitializeRecordEventArgs e)
    {
        ((XamDataGrid)sender).ExecuteCommand(DataPresenterCommands.ToggleRecordIsExpanded, e.Record);
    }
}
公共类AutoExpandXamDataGridRecordBehavior:行为
{
受保护的覆盖无效附加()
{
if(关联对象为XamDataGrid)
{
grid.InitializeRecord+=OnInitializeRecord;
}
}
附加时受保护的覆盖无效()
{
if(关联对象为XamDataGrid)
{
grid.InitializeRecord-=OnInitializeRecord;
}
}
private void OnInitializeRecord(对象发送方,InitializeRecordEventArgs e)
{
((XamDataGrid)sender).ExecuteCommand(DataPresenterCommands.ToggleRecordIsExpanded,e.Record);
}
}
public class AutoExpandXamDataGridRecordBehavior : Behavior<XamDataGrid>
{
    protected override void OnAttached()
    {
        if (AssociatedObject is XamDataGrid grid)
        {
            grid.InitializeRecord += OnInitializeRecord;
        }
    }


    protected override void OnDetaching()
    {
        if (AssociatedObject is XamDataGrid grid)
        {
            grid.InitializeRecord -= OnInitializeRecord;
        }
    }


    private void OnInitializeRecord(object sender, InitializeRecordEventArgs e)
    {
        ((XamDataGrid)sender).ExecuteCommand(DataPresenterCommands.ToggleRecordIsExpanded, e.Record);
    }
}