【发布时间】:2014-11-12 06:26:55
【问题描述】:
我有一个包含分层数据的 Xamdatagrid。我想自动显示所有此类记录。这样用户就不必为每条记录单击 + 图标。
【问题讨论】:
标签: c# wpf xamdatagrid
我有一个包含分层数据的 Xamdatagrid。我想自动显示所有此类记录。这样用户就不必为每条记录单击 + 图标。
【问题讨论】:
标签: c# wpf xamdatagrid
您可以像这样处理 XamDataGrid 的 InitializeRecord 事件(或覆盖 OnInitializeRecord):
void grid_InitializeRecord(object sender, Infragistics.Windows.DataPresenter.Events.InitializeRecordEventArgs e)
{
grid.ExecuteCommand(DataPresenterCommands.ToggleRecordIsExpanded, e.Record);
}
还有 DataPresenterCommands.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);
}
}
【讨论】: