20 messaggi dal 02 aprile 2006
Ciao a tutti,
(C # 2010) Debbo visualizzare e modificare dei dati in un DataGrid.
Il datasource del DataGrid è un ObservableCollection<Class1> .
Class1 ha 4 proprietà : 3 sono stringhe , la quarta è una ObservableCollection<Class2>. Class2 ha tre proprietà : un double, una stringa e un valore booleano .

In DataGrid ho bisogno di creare 3 colonne per le tre proprietà di Class1, e altrettante colonne come il numero di elementi nell'insieme Class2 .

Questo codice funziona

for (int i = 0; i < numberofcolumnstobecreated; i++)
{
PropertyPath ppath0 = new PropertyPath(".Class2[" + i.ToString() + "].Class2doubleproperty");

Binding bb0 = new Binding();
bb0.Path = ppath0;
DataGridTextColumn col0 = new DataGridTextColumn();
col0.Header = i.ToString();
col0.Binding = bb0;
DataGrid.Columns.Add(col0);
}

ma ho bisogno di creare colonne che, sulla base del valore di Class2.TheBooleanProperty visualizzano un'immagine (il cui percorso è memorizzato in Class2.TheStringProp ) o un textboxcolumn bindato a Class2.TheDoubleProperty .

Qualcuno mi potrebbe aiutare con esempi o altro? Sto cercando di usare templatedcolumns , templateselectors, ecc senza successo ...

Saluti,
Leonardo Pugliese
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
"leonardop" <leonardop> wrote in message
news:363045@...
Ciao a tutti,
(C # 2010) Debbo visualizzare e modificare dei dati in un DataGrid. Il datasource del DataGrid è un ObservableCollection<Class1> . Class1 ha 4 proprietà : 3 sono stringhe , la quarta è una
ObservableCollection<Class2>. Class2 ha tre proprietà : un double, una stringa e un valore booleano .
In DataGrid ho bisogno di creare 3 colonne per le tre proprietà di Class1, e altrettante colonne come il numero di elementi nell'insieme Class2 . Questo codice funziona
for (int i = 0; i < numberofcolumnstobecreated; i++)
{
PropertyPath ppath0 = new PropertyPath(".Class2[" + i.ToString() + "].Class2doubleproperty");
Binding bb0 = new Binding();
bb0.Path = ppath0;
DataGridTextColumn col0 = new DataGridTextColumn();
col0.Header = i.ToString();
col0.Binding = bb0;
DataGrid.Columns.Add(col0);
}
ma ho bisogno di creare colonne che, sulla base del valore di Class2.TheBooleanProperty visualizzano un'immagine (il cui percorso è memorizzato in Class2.TheStringProp ) o un textboxcolumn bindato a Class2.TheDoubleProperty .
Qualcuno mi potrebbe aiutare con esempi o altro? Sto cercando di usare templatedcolumns , templateselectors, ecc senza successo ... Saluti,
Leonardo Pugliese
Ciao,
hai letto questo?
http://www.winfxitalia.com/script/47/Template-Dinamici-WPF-DataTemplateSelector.aspx

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
61 messaggi dal 20 maggio 2009
ciao,
secondo me i 3 campi di Class1 li bindi normalmente su 3 colonne normali del datagird, la quarta colonna la fai templateColum e ci metti una usercontrol con un'altro datagrid
poi alla usercontrol gli passi la la 4° proprietà di class1.

Al momento non ho visualstudio su questo computer non ricordo esattamente la sintassi dello xamal.
 
<datagrid itemssource="{Binding Source}"......>   
   
  <DatagridTextColum Binding="{Source.Proprieta1}" header"P1">   
  <DatagridTextColum Binding="{Source.Proprieta1}" header"P1">   
  <DatagridTextColum Binding="{Source.Proprieta1}" header"P1">   
  <datagirdTemplateColum>   
     <DataTemplate>   
       <MyControl:Class2UserControl Class2="{Binding}">   
     </DataTemplate>   
  </DatagridTemplateColum>   
  </DataGrid>   


la user control avrà un'altro datagrid con 3 normali textcolum che bindano alla collezzione che gli viene passata. Ovviamente devi mettergli una DependcyPropery Class2 che usi per passargli Class11.objClass2


UserControl Class2UserControl
   
<datagrid itemssource="{Binding Class1Source}" ...>   
  <datagridTextColum binding="{Claass1Source.property1"}>   
  <datagridTextColum binding="{Claass1Source.property2"}>   
  <datagridTextColum binding="{Claass1Source.property3"}>   
</datagrid>   


Class1Source è una observableCollection<Class2> che valorizzi con una dependecy properties.

Vivaldi Francesco

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.