# C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions_" data-uid="C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions*">GroupDescriptions Property
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions_" data-uid="C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions*"></a>
<h4 id="C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions" data-uid="C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions">GroupDescriptions</h4>
<div class="markdown level1 summary"><p>Gets or sets a collection of <a class="xref" href="C1.Win.FlexGrid.GroupDescription.html">GroupDescription</a> objects that describe
how items in the data source are grouped in the grid.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">[Browsable(false)]
public IList&lt;GroupDescription&gt; GroupDescriptions { get; set; }</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">&lt;Browsable(False)&gt;
Public Property GroupDescriptions As IList(Of GroupDescription)</code></pre>
</div>
<h5 id="C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions_remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>
The <a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions.html#C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions">GroupDescriptions</a> property is similar to the <a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions.html#C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions">GroupDescriptions</a>
property available in the XAML and JavaScript versions of the FlexGrid.
</p>
<p>
Each group description also specifies a sort direction for the property.
For example, if you group the data by Country, the grid will sort the 
data by country before creating the groups.
</p>
<p>
Grouping works best when the <a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.DataSource.html#C1_Win_FlexGrid_C1FlexGridBase_DataSource">DataSource</a> can be sorted by
multiple properties (<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.ibindinglistview">IBindingListView</a>). This is the case
for <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.datatable">DataTable</a> sources. If you want to group lists of 
arbitrary objects, use the <a class="xref" href="C1.Win.FlexGrid.SortableBindingList-1.html">SortableBindingList&lt;T&gt;</a> class.
</p>
<p>
For example:
</p>
<pre><code class="lang-csharp">var list = new List&lt;MyDataObject&gt;();
for (var i = 0; i &lt; 100; i++)
{
    list.Add(new MyDataObject(i));
}
grid.DataSource = new SortableBindingList&lt;MyDataObject&gt;(list);
grid.GroupDescriptions = new List&lt;GroupDescription&gt;()
{
    new GroupDescription("Country"),
    new GroupDescription("Product"),
};</code></pre>
<p>
The <a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.GroupDescriptions.html#C1_Win_FlexGrid_C1FlexGridBase_GroupDescriptions">GroupDescriptions</a> property uses the grid's 
<a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.Subtotal.html#C1_Win_FlexGrid_C1FlexGridBase_Subtotal_C1_Win_FlexGrid_AggregateEnum_">Subtotal(AggregateEnum)</a> method to create and update 
the groups when the data is modified.
</p>
</div>
</div>
