Represents an "unbound" item property whose values can be appended to a data item.
The following example demonstrates how to use an unbound item property to display a calculated value. In this example, the total value of the units in stock.
Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
<Grid.Resources>
<xcdg:DataGridCollectionViewSource x:Key="cvs_products"
Source="{Binding Source={x:Static Application.Current}, Path=Products}">
<xcdg:DataGridCollectionViewSource.ItemProperties>
<xcdg:DataGridUnboundItemProperty Name="TotalUnitsValue"
DataType="{x:Type sys:Double}"
QueryValue="DataGridUnboundItemProperty_QueryValue" />
</xcdg:DataGridCollectionViewSource.ItemProperties>
</xcdg:DataGridCollectionViewSource>
<local:CurrencyConverter x:Key="currencyConverter" />
</Grid.Resources>
<xcdg:DataGridControl x:Name="OrdersGrid"
ItemsSource="{Binding Source={StaticResource cvs_products}}">
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="TotalUnitsValue"
Title="Total Inventory">
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource currencyConverter}}" />
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>
<xcdg:Column FieldName="Photo"
Visible="False" />
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
</Grid>
The following code provides the implementation of the QueryValue event in which the unbound value will be calculated and returned.
Private Sub DataGridUnboundItemProperty_QueryValue( ByVal sender As Object, ByVal e As DataGridItemPropertyQueryValueEventArgs )
Dim System.Data.DataRowView As row = TryCast( e.Item, System.Data.DataRowView )
If Not row Is Nothing Then
If( row( "UnitsInStock" ) <> DBNull.Value ) Then
e.Value = CDouble( CInt( row( "UnitsInStock" ) ) * CDec( row( "UnitPrice" ) )
End If
End If
End Sub
The following code provides the implementation of the QueryValue event in which the unbound value will be calculated and returned.
private void DataGridUnboundItemProperty_QueryValue( object sender, DataGridItemPropertyQueryValueEventArgs e )
{
System.Data.DataRowView row = e.Item as System.Data.DataRowView;
if( row != null )
{
if( row[ "UnitsInStock" ] != DBNull.Value )
{
e.Value = ( double )( ( short )row[ "UnitsInStock" ] * ( decimal )row[ "UnitPrice" ] );
}
}
}
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