Wpf binding visuale

venerdì 13 maggio 2011 - 07.21

IfCodeIsTrue Profilo | Newbie

ciao,
provengo da winform e ado.net (dataset, datatable) ed ero abituato ad avere la mia bella form con il dataset e quando avevo bisogno di bindare una combo o una griglia molto comodamente in modo visuale sceglievo come datasource il dataset e (in base al tipo di controllo da bindare) e come campi sceglievo sempre in modo visuale il nome della tabella, oppure da essa, selezionavo i campi che volevo bindare.

In WPF ora ho a che fare con entity framework e relative classi poco. Ho quindi la mia bella window e il mio object model pieno di entità, ma non ho ancora capito come fare per bindare in modo visuale i controlli alle mie entità, al momento so farlo solo da codice. qualcuno mi puo aiutare?

grazie.

whiteflash Profilo | Junior Member

MMh non so con che metodo tu associ i dati al database dovresti spiegarti meglio,
ma io i binding li imposto da xaml e il l'itemssource da codice (poi dipende se utilizzo oppure no un CollectionViewSource per gestire i dati)


Comunque ti faccio un piccolo elenco per il binding in xaml:

>>>>binding su proprietà di controlli padri
NomeProprietà = {Binding (Grid.Row),RelativeSource={RelativeSource Self}}

>>>>binding su proprieta di altri oggetti #in questo caso su un controllo nominato txtname#
NomeProprietà = {Binding ElementName=txtName, Path=Text.Length}

>>>>binding con converter
NomeProprietà = {Binding Path=Img, Converter={StaticResource ImageConverter}}

>>>>ESEMPIO MULTIBILDING
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} -- Now only {1:C}!">
<Binding Path="Description"/>
<Binding Path="Price"/>
</MultiBinding>
</TextBlock.Text>

>>>>ESEMPIO BINDING CON TESTO AGGIUNTO
NomeProprietà = {Binding Qta, StringFormat=Conf. {0}}

---------------------------------------------
Newbie esperto VB.NET 2010 e WPF

IfCodeIsTrue Profilo | Newbie

Mi riferisco al bindind su griglie.
E da quanto ho visto l'unico modo per farlo in modo visuale (senza rischiare di impostare proprietà path sbagliate) è proprio attraverso una risorsa statica di tipo collectionViewSource.

Ma a questo punto la domanda è: collectionViewSource come risorsa statica di window è una buona scelta? a me pare di no..

whiteflash Profilo | Junior Member

intendi il datagrid?
si utilizzano sempre quei metodi che ho scritto, almeno io utilizzo quelli,
il collection vievsource si utilizza in questo modo (

<Window.Resources>
<CollectionViewSource x:Key="CVS_CAP" />
</Window.Resources>

......

<DataGridControl ItemsSource="{Binding Source={StaticResource CVS_CAP}}" ..........

ma non capisco perchè dovresti metterla come source alla window invece che sui controlli a cui serve,
io in questi anni non ho mai avuto problemi ad utilizzarla in questo modo, anche tramite codice tipo:
WithEvent CVS as CollectionViewSource

dichiarata all'inizio della classe della window
---------------------------------------------
Newbie esperto VB.NET 2010 e WPF
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5