How to: Display Unbound Data
- 4 minutes to read
This example shows how to add an unbound column to the Grid Control.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Unbound_Columns"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Grid="using:DevExpress.UI.Xaml.Grid"
x:Class="Unbound_Columns.MainPage"
mc:Ignorable="d">
<Grid>
<Grid:GridControl Name="grid" AutoGenerateColumns="False" CustomUnboundColumnData="grid_CustomUnboundColumnData" ShowFixedTotalSummary="True" >
<Grid:GridControl.Columns>
<Grid:GridTextColumn FieldName="ProductName" />
<Grid:GridTextColumn FieldName="UnitPrice"/>
<Grid:GridTextColumn FieldName="Quantity" />
<Grid:GridTextColumn FieldName="Total" UnboundType="Decimal" />
</Grid:GridControl.Columns>
</Grid:GridControl>
</Grid>
</Page>
using System;
using DevExpress.Data;
using Windows.UI.Xaml.Controls;
namespace Unbound_Columns {
public sealed partial class MainPage : Page {
public MainPage() {
this.InitializeComponent();
grid.ItemsSource = new ProductList();
grid.TotalSummary.Add(SummaryItemType.Count, "ProductName");
grid.TotalSummary.Add(SummaryItemType.Max, "UnitPrice").DisplayFormat = "Max: {0:c2}";
grid.TotalSummary.Add(SummaryItemType.Average, "UnitPrice").DisplayFormat = "Avg: {0:c2}";
}
private void grid_CustomUnboundColumnData(object sender, DevExpress.UI.Xaml.Grid.GridColumnDataEventArgs e) {
if (e.IsGetData) {
int price = Convert.ToInt32(e.GetListSourceFieldValue("UnitPrice"));
int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));
e.Value = price * quantity;
}
}
}
}
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
public class Product {
public string ProductName { get; set; }
public string Country { get; set; }
public string City { get; set; }
public double UnitPrice { get; set; }
public int Quantity { get; set; }
}
public class ProductList : ObservableCollection<Product> {
public ProductList()
: base() {
Add(new Product() { ProductName = "Chang", Country = "UK", City = "Cowes", UnitPrice = 19, Quantity = 10 });
Add(new Product() { ProductName = "Gravad lax", Country = "Italy", City = "Reggio Emilia", UnitPrice = 12.5, Quantity = 16 });
Add(new Product() { ProductName = "Ravioli Angelo", Country = "Brazil", City = "Rio de Janeiro", UnitPrice = 19, Quantity = 12 });
Add(new Product() { ProductName = "Tarte au sucre", Country = "Germany", City = "QUICK-Stop", UnitPrice = 22, Quantity = 50 });
Add(new Product() { ProductName = "Steeleye Stout", Country = "USA", City = "Reggio Emilia", UnitPrice = 18, Quantity = 20 });
Add(new Product() { ProductName = "Pavlova", Country = "Austria", City = "Graz", UnitPrice = 21, Quantity = 52 });
Add(new Product() { ProductName = "Longlife Tofu", Country = "USA", City = "Boise", UnitPrice = 7.75, Quantity = 120 });
Add(new Product() { ProductName = "Alice Mutton", Country = "Mexico", City = "México D.F.", UnitPrice = 21, Quantity = 15 });
Add(new Product() { ProductName = "Alice Mutton", Country = "Canada", City = "Tsawwassen", UnitPrice = 44, Quantity = 16 });
}
}