Skip to content

Forum

Please or Register to create posts and topics.

XAML: Binding UserControl

Ciao!

Bisogna sapersi fermare e chiedere aiuto... Dopo tre giorni... Ecco una sfida XAML di cui non ho trovato chiare risposte su internet... Se mi riesci ad aiutare mi renderesti felice!

Ho uno UserControl (UC) che contiene:
- una DataGrid e (DG)

il DataContext (DC) è costituito da una classe (M)

M contiene varie proprieta. Esse sono dotate di public get/set e OnPropertyChanged()

DC è instanziato nella Window (W)

nella Window (W) instanzio 5 "UC" bindati a 5 diverse List<string> presenti in una classe (M)

Domanda: Come passare a ogni ""UC/A" l'ItemsSource per la propria DataGrid (DG) ?
Ho creato un DependencyProperty in UC/A (dotato di OnNotifyChanged), per acquisire l'ItemsSource List<string>. Funziona, infatti uso un IConverterValue per verificare l'arrivo dei valori.

Però le 5 DG non visualizzano i valori.

Ma, ecco il bello, se imposto l'ItemsSource delle 5 DG attraverso C#, allora le GD funzionano e visualizzano le stringhe.

Altre proprietà di M vengono normalmente visualizzate...

So che si tratta di una bella domanda... Riesci ad aiutarmi? Cmq Grazie!!

Ciao Paolo,

https://discord.gg/kaX2fkzgE2

Oltre a rinnovarti l'invito a unirti a .Net Friends su Discord cliccando il link qui sopra e scaricando il client, leggendo quanto scrivi la sola cosa che non sembra corretta nella logica del tuo progetto è che stai usando delle List<generic> come datasource e le List<generic> non implementano la parte di PropertyChanged che WPF usa per comunicare quando inserisci o modifichi dati nella collection. Prima di provare altro, prova a cambiare le List<generic> con delle ObservableCollection<generic> visto che hai indicato che gli oggetti dentro alle liste implementano INotifyPropertyChanged, potrebbe essere la sola cosa che manca.
Una ulteriore cosa da controllare è che una volta generata e assegnata una collection come source, essa non cambi se non per il fatto che aggiungi o togli oggetti al suo interno.

Prova e facci sapere (volendo su Discord dove i messaggi arrivano subito, prometto che nessuno di noi morde :P)

Sabrina

.: The Dotnetworkers Team :.