How to: Display Unbound Data

This example shows how to add an unbound column to the GridControl. This column should display the total price, calculated as follows: UnitPrice * UnitsOnOrder.

<Window x:Class="DXGrid_UnboundColumns.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
        Title="Window1"
        Height="300"
        Width="552">
    <Grid>
        <dxg:GridControl x:Name="grid" CustomUnboundColumnData="grid_CustomUnboundColumnData">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="ProductName" />
                <dxg:GridColumn FieldName="UnitPrice">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="c2" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="UnitsOnOrder" />
                <dxg:GridColumn FieldName="Total" UnboundType="Boolean" ReadOnly="True">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="c2" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </Grid>
</Window>
using System;
using System.Windows;
using DevExpress.Xpf.Grid;

namespace DXGrid_UnboundColumns {
    public partial class Window1 : Window {
        public Window1() {
            InitializeComponent();
            grid.ItemsSource = new dsProductsTableAdapters.ProductsTableAdapter().GetData();
        }

        private void grid_CustomUnboundColumnData(object sender, GridColumnDataEventArgs e) {
            if (e.IsGetData) {
                int price = Convert.ToInt32(e.GetListSourceFieldValue("UnitPrice"));
                int unitsOnOrder = Convert.ToInt32(e.GetListSourceFieldValue("UnitsOnOrder"));
                e.Value = price * unitsOnOrder;
            }
        }
    }
}