2013-11-20 32 views
0

如何從Infragistics中爲XamDataGrid的給定屬性設置Group By on Load,並使該視圖不會摺疊並摺疊組禁用? 如果這是可能的,我會知道我怎麼可以隱藏組按小按鈕。Infragistics XamDataGrid Group通過在WPF中加載

我的環境是WPF和C#。

+0

您是否正在使用infragistic數據網格? –

+0

@VishalParekh是的,我正在使用該數據網格。 – jonas

+0

因此,您可以通過使用ListCollectionView並將GroupDescriptions添加到其中並將ListCollectionView應用爲項目源來實現此目的,它將生成具有在GroupDescriptions中定義的列名稱的組。 –

回答

4

試試這個,

在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;  
}  
} 
+0

瞭解如何觸發'xdgSample_InitializeRecord()',但發現它必須從' jonas

+0

在這裏,有問題,你沒有提及HeaderPlacement,所以我已經自己設置它。您可以根據您的要求設置HeaderPlacementInGroupBy屬性。 –

+0

這是我的錯,我看到我沒有提到頭的位置。但是你會在'XamDataGrid'中添加'InitializeRecords'。我認爲可能會讓人迷惑,因爲如果沒有添加,它將無法正常工作。 – jonas

相關問題