Infragistics의 XamDataGrid에 대한 특정 속성에 대해 Group By On Load를 설정하고이 그룹을 축소 할 수있는 권한을 가진보기를 비활성화하지 않으려면 어떻게해야합니까? 이것이 가능한 경우 그룹 별 작은 단추를 숨길 수있는 방법을 알고 있습니다.Infragistics XamDataGrid 그룹 WPF에서로드시
내 환경은 WPF 및 C#입니다.
Infragistics의 XamDataGrid에 대한 특정 속성에 대해 Group By On Load를 설정하고이 그룹을 축소 할 수있는 권한을 가진보기를 비활성화하지 않으려면 어떻게해야합니까? 이것이 가능한 경우 그룹 별 작은 단추를 숨길 수있는 방법을 알고 있습니다.Infragistics XamDataGrid 그룹 WPF에서로드시
내 환경은 WPF 및 C#입니다.
이 시도, XAML에서
, 코드 숨김에서
<igDP:XamDataGrid x:Name="xdgSample" DataSource="{Binding SampleCollection}" InitializeRecord="xdgSample_InitializeRecord">
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:Field Name="field1" Label="Field1"/>
<igDP:Field Name="field2" Label="Field2"/>
<igDP:Field Name="field3" Label="Field3"/>
<igDP:Field Name="field4" Label="Field4"/>
<igDP:Field Name="field5" Label="Field5"/>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings AllowFieldMoving="No"
AllowDelete="False"
AutoGenerateFields="False"
AutoFitMode="ExtendLastField"
SelectionTypeRecord="Single"
FilterUIType="LabelIcons"
GroupByExpansionIndicatorVisibility="Collapsed">
</igDP:FieldLayoutSettings>
</igDP:XamDataGrid.FieldLayoutSettings>
</igDP:XamDataGrid>
, 당신은 코드 아래에 넣을 수 있습니다
Private ObservableCollection<SampleBO> sampleCollection;
Public ObservableCollection<SampleBO> SampleCollection
{
get
{
return this.sampleCollection;
}
}
로드하고 창로드 이벤트 또는 생성자의 데이터를 그룹화하는,
this.sampleCollection = your collection/List;
this.OnPropertyChange("SampleCollection");
this.xdgSample.FieldLayouts[0].SortedFields.Add(new FieldSortDescription
{
IsGroupBy = true,
Field = this.xamInputList.FieldLayouts[0].Fields["field2"],
Direction = System.ComponentModel.ListSortDirection.Ascending
});
this.xdgSample.FieldLayoutSettings.HeaderPlacement = HeaderPlacement.OnTopOnly;
this.xdgSample.FieldLayoutSettings.HeaderPlacementInGroupBy = HeaderPlacementInGroupBy.WithDataRecords;
또한, 확장 된 그룹의 경우, 아래의 이벤트를 사용하십시오. 초기에 그룹을 확장하는 데 사용됩니다.
private void xdgSample_InitializeRecord(object sender, Infragistics.Windows.DataPresenter.Events.InitializeRecordEventArgs e)
{
if (e.Record.NestingDepth == 0)
{
e.Record.IsExpanded = true;
}
}
'xdgSample_InitializeRecord()'를 트리거하는 방법을 이해하는 데 다소 시간이 걸렸지 만'
여기에서 질문에서 당신은 HeaderPlacement에 대해 언급하지 않았으므로, 나는 그것을 스스로 설정했습니다. 요구 사항에 따라 HeaderPlacementInGroupBy 속성을 설정할 수 있습니다. –
그게 내 잘못이야, 나는 헤더의 위치를 언급하지 않았다는 것을 알았다. 하지만'XamDataGrid'에'InitializeRecords'를 추가할까요? 내가 추가하지 않으면 작동하지 않을 것으로 사람들을 혼란스럽게 할 수 있다고 생각합니다. – jonas
당신은 가상 데이터 그리드를 사용하고 있습니까? –
@VishalParekh 예 해당 데이터 표를 사용하고 있습니다. – jonas
그래서 ListCollectionView를 사용하여 GroupDescriptions를 추가하고 ListCollectionView를 항목 소스로 적용하면 GroupDescriptions에 정의 된 열 이름을 가진 그룹이 생성됩니다. –