Xceed DataGrid for WPF v7.3 Documentation
Xceed.Wpf.DataGrid Assembly / Xceed.Wpf.DataGrid Namespace / QueryDistinctValueEventArgs Class
Members Example


In This Topic
    QueryDistinctValueEventArgs Class
    In This Topic
    Provides information on a distinct value extracted from the underlying data source and allows a new one to be provided in its stead.
    Syntax
    'Declaration
     
    Public Class QueryDistinctValueEventArgs 
       Inherits System.EventArgs
    'Usage
     
    Dim instance As QueryDistinctValueEventArgs
    public class QueryDistinctValueEventArgs : System.EventArgs 
    Example

    All examples in this topic assume that the grid is bound to the Orders table of the Northwind database, unless stated otherwise.

    The following example demonstrates how to provide custom distinct values that will display the only the month in columns that display DateTime values and that will filter according to a value range for a decimal column.
    <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}"
                                            AutoFilterMode="And"
                                            DefaultCalculateDistinctValues="False">
            <xcdg:DataGridCollectionViewSource.ItemProperties>
    
              <xcdg:DataGridItemProperty Name="OrderDate"
                                         QueryDistinctValue="DataGridItemProperty_QueryDistinctValue_Date"
                                         CalculateDistinctValues="True"/>
              <xcdg:DataGridItemProperty Name="RequiredDate"
                                         QueryDistinctValue="DataGridItemProperty_QueryDistinctValue_Date"
                                         CalculateDistinctValues="True" />
              <xcdg:DataGridItemProperty Name="ShippedDate"
                                         QueryDistinctValue="DataGridItemProperty_QueryDistinctValue_Date"
                                         CalculateDistinctValues="True" />
              <xcdg:DataGridItemProperty Name="Freight"
                                         QueryDistinctValue="DataGridItemProperty_QueryDistinctValue_Range"
                                         CalculateDistinctValues="True" />
            </xcdg:DataGridCollectionViewSource.ItemProperties>
         </xcdg:DataGridCollectionViewSource>
       
      </Grid.Resources>
      <xcdg:DataGridControl x:Name="OrdersGrid"
                            ItemsSource="{Binding Source={StaticResource cvs_orders}}"/>
    </Grid>
    Private Sub DataGridItemProperty_QueryDistinctValue_Date( ByVal sender As Object, ByVal e As QueryDistinctValueEventArgs )
      If TypeOf e.DataSourceValue Is DateTime Then
        e.DistinctValue = CDate( e.DataSourceValue ).ToString( "MMMM" )
      End If
    End Sub
    
    Private Sub DataGridItemProperty_QueryDistinctValue_Range( ByVal sender As Object, ByVal e As QueryDistinctValueEventArgs )
      If TypeOf e.DataSourceValue Is Decimal Then
        Dim value As Decimal = CDec( e.DataSourceValue )
        If value <= 100 Then
          e.DistinctValue = "0 - 100"
        ElseIf( value > 100 And value <= 500 ) Then
          e.DistinctValue = "101 - 500"
        Else
          e.DistinctValue = "500+"
        End If
      End If
    End Sub
    private void DataGridItemProperty_QueryDistinctValue_Date( object sender, QueryDistinctValueEventArgs e )
    {
     if( e.DataSourceValue is DateTime )
     {
       e.DistinctValue = ( ( DateTime )e.DataSourceValue ).ToString( "MMMM" );
     }
    }
    
    private void DataGridItemProperty_QueryDistinctValue_Range( object sender, QueryDistinctValueEventArgs e )
    {
     if( e.DataSourceValue is decimal )
     {
       decimal value = ( decimal )e.DataSourceValue;
       if( value <= 100 )
       {
         e.DistinctValue = "0 - 100";
       }
       else if( value > 100 && value <= 500 )
       {
         e.DistinctValue = "101 - 500";
       }
       else
       {
         e.DistinctValue = "500+";
       }
     }
    }
    Inheritance Hierarchy

    System.Object
       System.EventArgs
          Xceed.Wpf.DataGrid.QueryDistinctValueEventArgs

    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