[WPF] Binding et type custom
Je travaille avec VS2008 Beta 2 et le framework 3.5.
Je fais du binding qui fonctionne bien, mais j'ai un cas que je n'arrive pas à résoudre.
Je vous donne d'abord le cas qui fonctionne bien, et ensuite mon problème.
CAS QUI FONCTIONNE :
J'ai une liste de cette classe
Code:
1 2 3 4 5 6 7 8 9 10 11
|
class CFctBase : INotifyPropertyChanged
{
public object Value
{
get;
set;
}
....
} |
Je binde un élément de cette liste à un controle de la manière suivante:
Code:
1 2 3 4 5 6 7
|
void test(CFctBase o_fct)
{
Binding o_binding = o_binding = new Binding("Value");
my_label.SetBinding(Label.ContentProperty, o_binding);
my_label.DataContext = o_fct;
} |
Jusque là Value est instantié comme un type string, tout va bien.
Lorsque je mets à jour l'attribut Value de mon instance o_fct, my_label se met bien à jour tout va bien.
CAS QUI NE FONCTIONNE PAS:
Maintenant, je voudrais faire la même chose mais Value est un type custom.
Il est de type CommProtocol.IMultiArray.
Ce type possède un attribut MultiArray qui renvoie une collection.
Bien sur, maintenant je binde Value sur un listview, puisque c'est une collection et là tout va bien:
Code:
1 2 3 4
|
Binding o_binding = new Binding();
lvMain.SetBinding(ListView.ItemsSourceProperty, o_binding);
lvMain.DataContext = (o_fct.Value as CommProtocol.IMultiArray).MultiArray; |
Cela fonctionne mais dans ce cas, mon listview n'est pas rafraichi si Value change.
Ce que je voudrais c'est faire quelque chose de ce style :
Code:
1 2 3 4
|
Binding o_binding = new Binding("MultiArray");
lvMain.SetBinding(ListView.ItemsSourceProperty, o_binding);
lvMain.DataContext = o_fct.Value as CommProtocol.IMultiArray; |
Mais bien sur ça ne fonctionne pas, mais je ne sais pas trop comment contourner le problème.
Passer par un ODP ?
Merci d'avance pour vos idées.