Buongiorno Lista e ben tornati dalle ferie
Da ieri mattina mettendo mano ad un progetto abbiamo avuto bisogno di creare le colonne di un DataGrid (inserito nel XML della form).
Il DataGrid viene popolato con una DataTable (che crea a run time) effettuando il binding.
Questo DataGrid è stato posto come
IsReadOnly="True" e infatti se io vado a selezionare una cella qualsiasi non permette la modifica del dato eccetto che per il controllo
CheckBox che invece continua a essere editabile.
Intanto non capisco perchè questo controllo non faccia come tutti gli altri.
Ho provato le varie soluzioni che ho trovato ma non funzionano (a meno che non crei una colonna checkbox nel file XML e allora tutto funziona) e sto impazzendo da ieri.
Qualcuno può aiutarmi con un'idea su come posso fare.
Qui sotto vi inserisco il codice che utilizzo per la creazione delle colonne
private void CreateColumns(DataGridStruct gridStruct)
{
DataGridTemplateColumn colTemplate = new DataGridTemplateColumn();
DataTemplate dttTemplate = new DataTemplate();
switch (gridStruct.TypeColl)
{
case WF.WFRType.Oggetto_File:
FrameworkElementFactory ckb = new FrameworkElementFactory(typeof(CheckBox));
ckb.SetBinding(CheckBox.IsCheckedProperty, new Binding(gridStruct.BindingColl));
gridStruct.HeadersColl = "File";
dttTemplate.VisualTree = ckb;
break;
default:
FrameworkElementFactory txt = new FrameworkElementFactory(typeof(TextBlock));
txt.SetBinding(TextBlock.TextProperty, new Binding(gridStruct.BindingColl));
dttTemplate.VisualTree = txt;
break;
}
colTemplate.CellTemplate = dttTemplate;
colTemplate.Header = gridStruct.HeadersColl;
colTemplate.Width = gridStruct.WidthColl;
colTemplate.HeaderStyle = (Style)this.FindResource("DataGridColumnHeaderC");
colTemplate.Visibility = gridStruct.VisibleCol == true ? Visibility.Visible : Visibility.Hidden;
colTemplate.IsReadOnly = false;
dgMRView.Columns.Add(colTemplate);
}
Nella speranza che qualcuno mi possa dare un aiuto invio cordiali saluti .