I programmatically add DataGrid
:
System.Windows.Controls.DataGrid dataGrid = new System.Windows.Controls.DataGrid();
dataGrid.GridLinesVisibility = DataGridGridLinesVisibility.None;
dataGrid.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
dataGrid.Background = Brushes.White;
DataGridTextColumn textColumn = new DataGridTextColumn();
textColumn.Width = 250;
textColumn.Header = "Account";
textColumn.Binding = new Binding("Account");
dataGrid.Columns.Add(textColumn);
When I add Item:
Globals_Liker.list_datagrid[tabControl1.SelectedIndex].Items.Add(Globals_Liker.list_item[tabControl1.SelectedIndex][i]);
But if I doubleclick on Items I have error:
"EditItem" is not allowed for this view.
How to make that error does not pop up?
You should not update the Items directly of your DataGrid
but rather set the ItemsSource
to the collection. DataGrid will generate the view out of the itemsource that implements IEditableCollectionView
interface in order to allow the editing. This interface has function EditItems()
which let the editing happen.
So in order solve this problem. Create the ObservableCollection
property in your VM/Code behind and set the DataGrid ItemsSource to it like
ObservableCollection<Type> MyCollection{get;set;}
Globals_Liker.list_datagrid[tabControl1.SelectedIndex].ItemsSource = MyCollection;
In your constructor you can initialize this collection by newing it. And whenever you want to add item in your DataGrid
, just add the item in the Observable collection (MyCollection), it will be shown on grid and will be editable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With