I have a GridViewComboBoxColumn bound to a System.Data.DataRow, and I am having trouble using ItemsSourceBinding to bind the items to another column on the row. If I use ItemsSource I have no trouble - see the sample code below.
How should I be using ItemsSourceBinding for a System.Data.DataRow data context?
How should I be using ItemsSourceBinding for a System.Data.DataRow data context?
public partial class MainWindow : Window { public MainWindow() { StackPanel stackPanel = new StackPanel(); stackPanel.Children.Add( CreateItemsSourceGridTelerik_WORKING() ); stackPanel.Children.Add( CreateItemsSourceGridTelerik_NOTWORKING() ); Content = stackPanel; } public class Node { public string Description { get; set; } public string Code { get; set; } } RadGridView CreateItemsSourceGridTelerik_WORKING() { RadGridView grid = new RadGridView { AutoGenerateColumns = false }; grid.Columns.Add( new GridViewComboBoxColumn { DataMemberBinding = new Binding( "Column" ), DisplayMemberPath = "Description", SelectedValueMemberPath = "Code", ItemsSource = new Node[] { new Node { Description = "One", Code = "1" }, new Node { Description = "Two", Code = "2" } }, } ); DataTable table = new DataTable(); table.Columns.Add( "Column" ); DataRow row = table.NewRow(); table.Rows.Add( row ); row[ "Column" ] = "2"; grid.ItemsSource = table.DefaultView; return grid; } RadGridView CreateItemsSourceGridTelerik_NOTWORKING() { RadGridView grid = new RadGridView { AutoGenerateColumns = false }; grid.Columns.Add( new GridViewComboBoxColumn { DataMemberBinding = new Binding( "Column" ), DisplayMemberPath = "Description", SelectedValueMemberPath = "Code", ItemsSourceBinding = new Binding( "ColumnItems" ), } ); DataTable table = new DataTable(); table.Columns.Add( "Column" ); table.Columns.Add( "ColumnItems" ); DataRow row = table.NewRow(); table.Rows.Add( row ); row[ "Column" ] = "2"; row[ "ColumnItems" ] = new Node[] { new Node { Description = "One", Code = "1" }, new Node { Description = "Two", Code = "2" } }; grid.ItemsSource = table.DefaultView; return grid; } }