Xceed Toolkit Plus for WPF v4.6 Documentation
GetItemFromContainer Method (DataGridContext)
Example 


Xceed.Wpf.DataGrid Assembly > Xceed.Wpf.DataGrid Namespace > DataGridContext Class : GetItemFromContainer Method
A DependencyObject representing the container of an item in the context.
Retrieves an item for the specified container.
Syntax
'Declaration
 
Public Function GetItemFromContainer( _
   ByVal container As DependencyObject _
) As Object
'Usage
 
Dim instance As DataGridContext
Dim container As DependencyObject
Dim value As Object
 
value = instance.GetItemFromContainer(container)
public object GetItemFromContainer( 
   DependencyObject container
)

Parameters

container
A DependencyObject representing the container of an item in the context.

Return Value

The item for the specified container.
Example
All examples in this topic assume that the grid is bound to the Orders or Employees table of the Northwind database, unless stated otherwise.
The following example demonstrates how to handle the PreviewMouseLeftButtonDown event on the GroupHeaderControl objects contained in the headers of the child groups to toggle the expansion state of child groups using the ToggleGroupExpansion method. The group whose state is to be toggled will be retrieved using the GetParentGroupFromItem method.
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
  <Grid.Resources>
    <xcdg:DataGridCollectionViewSource x:Key="cvs_orders"
                                       Source="{Binding Source={x:Static Application.Current}, 
                                                        Path=Orders}">
      <xcdg:DataGridCollectionViewSource.GroupDescriptions>
        <xcdg:DataGridGroupDescription PropertyName="ShipCountry"/>
        <xcdg:DataGridGroupDescription PropertyName="ShipCity"/>
      </xcdg:DataGridCollectionViewSource.GroupDescriptions>
    </xcdg:DataGridCollectionViewSource>
    <Style TargetType="{x:Type xcdg:GroupHeaderControl}">
      <EventSetter Event="PreviewMouseLeftButtonDown"
                   Handler="HeaderDown"/>
    </Style>   
</Grid.Resources>
  <xcdg:DataGridControl x:Name="OrdersGrid"
                        ItemsSource="{Binding Source={StaticResource cvs_orders}}"/>
</Grid>
The following code provides the implementation of the PreviewMouseLeftButtonDown event in which we will retrieve the item represented by the GroupHeaderControl (GroupHeaderFooterItem) using the GetItemFromContainer method, which will then be used to retrieve the parent group (GetParentGroupFromItem) whose state is to be toggled.
Private Sub HeaderDown( ByVal sender As Object, ByVal e As MouseEventArgs )

  Dim headerControl As GroupHeaderControl = TryCast( sender, GroupHeaderControl );
  If header Is Nothing Then
    Return
  End If

  Dim context As DataGridContext = DataGridControl.GetDataGridContext( headerControl )
  Dim item As Object = context.GetItemFromContainer( headerControl ) )

  If Not item Is Nothing Then
    Dim group As CollectionViewGroup = context.GetParentGroupFromItem( item )
    If Not group Is Nothing
      context.ToggleGroupExpansion( group )
    End If
  End If
End Sub
The following code provides the implementation of the PreviewMouseLeftButtonDown event in which we will retrieve the item represented by the GroupHeaderControl (GroupHeaderFooterItem) using the GetItemFromContainer method, which will then be used to retrieve the parent group (GetParentGroupFromItem) whose state is to be toggled.
private void HeaderDown( object sender, MouseEventArgs e )
{
  GroupHeaderControl headerControl = sender as GroupHeaderControl;
  if( headerControl == null )
    return;
  DataGridContext context = DataGridControl.GetDataGridContext( headerControl );
  object item = context.GetItemFromContainer( headerControl );
  if( item != null )
  {
    CollectionViewGroup group = context.GetParentGroupFromItem( item );
    if( group != null )
    {
      context.ToggleGroupExpansion( group );
    }
  }
}
Requirements

Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

DataGridContext Class
DataGridContext Members