I have a xamdatagrid binding to a collection of “Nodes”. Here are my custom classes
public class Node
{
string name = string.Empty;
public string Name { get; set; }
ObservableCollection<Node> child = new ObservableCollection<Node>();
public ObservableCollection<Node> Child
get
if (child == null) child = new ObservableCollection<Node>();
return child;
}
set { child = value; }
ObservableCollection<Forecast> forecasts = new ObservableCollection<Forecast>();
public ObservableCollection<Forecast> Forecasts
get { return forecasts; }
set { forecasts = value; }
public class Forecast
public List<Load> Loads { get; set; }
public class Load
public int Value { get; set; }
I would like to bind my grid to a collection of Nodes. I have to generate my fields dynamically. I first create a field for my Node and Child. Then once I try to expand a child that doesn’t have any other children I would like to display the values in my forecasts collection.
private void xamDataGrid_RecordExpanding(object sender, Infragistics.Windows.DataPresenter.Events.RecordExpandingEventArgs e)
if (e.Record.HasChildren == false)
Field forecast = new Field();
forecast.Name = "Forecasts";
forecast.Label = "Region";
e.Record.FieldLayout.Fields.Add(forecast);
When I do this I get 2 blank rows with just the names of the Child field and Forecasts field. If I expand the Forecasts row I can then see the values in my forecasts collection.
Is there a way to display the Forecasts values automatically and not display the Child Field name? I tried to remove the Child field but if I do that I lose all child fields in the grid and can only see my top level node…
Thanks
HI,
I am attaching a new sample.
Sincerley,
Matt
Developer Support Engineer
Hi Matt,
The sample solution doesn’t solve our problem. The solution does not solve the issue when a Child (or Node) only has a Forecast collection and no other Children. I am running into problems only showing the forecast values or only showing the Children values.
Please see the screenshot below of what I’m trying to achieve. Note that Node 2 only contains children Nodes and Node 3 only contains a collection of Forecast values. Also, a children is capable of holding either other children nodes (see Node 1, Child2.2) or a collection of Forecasts (Node 3, Child 2.2.1, Child 2.3). All children values will be a sum it’s Forecast values and since a Forecast is the lowest level the Forecast rows would not be expandable.
Please let me know if you need further assistance regarding this case.
Sincerely,
I am attaching a new sample that addresses your additional requirements.
Matt Developer Support Engineer
Thanks for the quick reply. This is very close to what I’m trying to do only I would like to see the forecast data automatically shown if there are no children, rather than seeing the 2 empty rows (Child and Forecast) and having to expand the Forecast row to see the values. Is this possible?
Thanks,
Chad