19 messaggi dal 01 settembre 2011
buonasera,
ho la tabella via1( via_id,via_desc,via_stato)


ho la seguenta data grid:

<sdk:DataGrid AutoGenerateColumns="False" Height="112" HorizontalAlignment="Left" Name="dg1" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="614">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="via_desc1Column" Binding="{Binding}" Header="Via desc 1" Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="via_id1Column" Binding="{Binding}" Header="Via id 1" IsReadOnly="True" Width="SizeToHeader" />
</sdk:DataGrid.Columns>



ho un bottone di carimcamento:

ctx.Load(ctx.GetVia1Query());

var v = from t1 in ctx.via1s
select new { t1.via_desc1,t1.via_id1 };

dg1.ItemsSource =v.ToList();

ma purtroppo il seguente risultato:
{ via_desc1 = via maggiore, via_id1 = 1 }
{ via_desc1 = udine, via_id1 = 2 }

ecc riteptuto uguale anche per la seconda colonna della griglia. Perchè non valorizza solo con il risulato e invece si posta dietro anche il nome della colonna?
Grazie V
3 messaggi dal 07 marzo 2011
Nella definizione di ogni colonna non hai messo nell'attributo Binding il nome del campo al quale vuoi associare la colonna del tuo datagrid.
Più precisamente, tu hai scritto:
<sdk:DataGridTextColumn x:Name="via_desc1Column" Binding="{Binding}" Header="Via desc 1"

Invece il modo corretto é:

<sdk:DataGridTextColumn x:Name="via_desc1Column" Binding="{Binding NOMECAMPO}" Header="Via desc 1"

dove NOMECAMPO dovrebbe essere via_desc
19 messaggi dal 01 settembre 2011
Ho provato, ma l effetto che ho è la "compressione" della datagrid, nel senso che non visualizza nulla!!!

Sbaglio qualcos altro vero???

GRaize !!!!


Buona giornata!!!!!!

Viviano
3 messaggi dal 07 marzo 2011
Quando tu hai impostato nel tuo datagrid il parametro ItemsSource hai scritto le seguenti 3 linee di codice:

var v = from t1 in ctx.via1s
select new { t1.via_desc1,t1.via_id1 };

dg1.ItemsSource =v.ToList();

e se invece mettessi ?
dg1.ItemsSource =ctx.via1s;

Avendo infatti tu scritto 'select new { t1.via_desc1,t1.via_id1 };',di fatto stai dando come sorgente di dati un'array (suppongo di stringhe) sulla quale non riesci a fare il binding (non c'é un nome di campo associabile alla colonna del datagrid). Se invece imposti come ItemsSource del datagrid l'oggetto enumerabile 'via1s' (o un suo sottinsieme impostando adeguatamente un filtro) contenuto nel context (può essere un'array o una lista o qualcos'altro, devi solo tenere bene in mente che esso implementa l'interfaccia IEnumerable), dovresti vedere qualcosa, in quanto ogni elemento di 'via1s' é un record di tipo 'via1' che contiene i campi 'via_desc1 e via_id1 e, nel file .xaml tu hai impostato come binding per la colonna, proprio via_desc1.
Ciao e fammi sapere se va bene.
19 messaggi dal 01 settembre 2011
Innanzitutto grazie!!
Funzia!!!
In questo modo funziona, ma lesigenza era nata nel considerare dati da piu tabelle e non da una sola. In tal caso dovrei fare una view sql per poter utilizzare la stessa soluzione segnlata date vero?

Grazie ancora V

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.