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