3 messaggi dal 04 gennaio 2012
ciao Ragazzi

mi sono appena iscritto in questo Forum,
sto disegnando un' app in c# WPF e mi sono inceppato in un piccolo problema:
in pratica ho un treeView con Hierarchical dentro una ComboBox inizializzato con con tre tabelle di EDM relazionate tra loro (rispettivamente Master>Details>SubDetails , e non riesco a trovare il codice corretto per estrapolare i valori da SelectedItem

ho provato con questo codice:

var Oggetto = ((Master)(sender as ComboBox).SelectedItem).Oggetto;

var Details = ((Details)(sender as ComboBox).SelectedItem).DescrizioneDetails

var SubDetails = ((SubDetails)(sender as ComboBox).SelectedItem).DescrizioneSubDetalils;



la prima riga(Master) restituisce il valore correttamente, ma le altre due mi danno errore



qualcuno saprebbe dirmi dove sbaglio ?
108 messaggi dal 09 novembre 2005
Ehm...
andiamo per gradi, stai usando il pattern MVVM, immagino giusto?
3 messaggi dal 04 gennaio 2012
esatto...
praticamente devo assegnare i valori di TreeView.selecteditem al selectedItem di DataGrid
Modificato da fabiomiceli il 05 gennaio 2012 12.31 -
108 messaggi dal 09 novembre 2005
Se ho capito bene...

Hai una struttura a 3 livelli:

Master che ha una property Detalis, ogni Detail ha un property SubDetail.

Nel ViewModel dovresti avere 3 property: MasterSelezionato, DetailSelezionato, SubDetailSelezionato, queste 3 property le metti come SelectedItem={Binding XXXXXX, Mode=TwoWay} all'interno della struttura Hierarchical.

In questo modo hai distintamente le 3 selezioni dei 3 livelli.

In base a quale livello é a null, dovresti dedurre come inizializzare la DataGrid, ma non il SelectedItem, ma l'ItemSource.

Spero sia chiara la mia idea, e che ti serva proprio questo.
3 messaggi dal 04 gennaio 2012
scusami ma non ho capito bene...


il treewiew e questo:


<TreeView FontSize="13" Name="tree" Grid.Column="0" Margin="5" ItemsSource="{Binding}" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Details}" >
<StackPanel>
<TextBlock Text="{Binding Path=Oggetto}" FontSize="13" FontWeight="Bold"/>
<TextBlock Height="5" Text=" " />
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="13" Text="Data: " FontWeight="Bold" Margin="10,0,0,0" />
<TextBlock FontSize="13" Foreground="Blue" Text="{Binding Data, ConverterCulture=it-IT, StringFormat='{}{0:dd MMMM, yyyy}'}"/>
</StackPanel>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding SubDetails}">
<StackPanel>
<Border BorderBrush="Silver" BorderThickness="1" Height="50" Width="300" HorizontalAlignment="Left" Margin="10,10,10,10" Name="border1" VerticalAlignment="Top" CornerRadius="5,5,5,5" >
<Grid>
<TextBlock FontSize="13" Margin="5,5,0,0" Text="{Binding Path=Descrizione}"/>
</Grid>
</Border>
</StackPanel>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>


cui inizializzo con il DataContext della Window..

Datacontext = MyContext.Master;




il DataGrid (dove devo passare i valori di TreeView.SelectedItem) invece è bindato con un'altra tabella del DB che non è relazionata con Master
ma ha tre campi con nome uguale a quelle di Master.Oggetto, Details.Descrizione e SubDetails.Descrizione......

la Window di TreeView la lancio dalla Window di DataGrid

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC