Ho una matrice bool di dimensione 4 e voglio associare ogni cella a un controllo diverso. Questo array bool rappresenta 4 stati (false = failure, true = success). Questo array booleano è un propery con una classe:Come ottenere la funzionalità INotifyPropertyChanged per i valori in un valore bool []?
class foo : INotifyPropertyChanged {
...
private bool[] _Statuses;
public bool[] Statuses
{
get {return Statuses;}
set {
Statuses = value;
OnPropertyChanged("Statuses");
}
}
In XAML ci sono 4 controlli, ciascuno legato ad una cella della matrice:
... Text="{Binding Path=Statuses[0]}" ...
... Text="{Binding Path=Statuses[1]}" ...
... Text="{Binding Path=Statuses[2]}" ...
... Text="{Binding Path=Statuses[3]}" ...
Il problema è che la notifica evento è sollevato soltanto quando cambio la matrice stessa e non viene generato quando cambio un valore all'interno della matrice, cioè, riga successiva codice genera l'evento:
Statuses = new bool[4];
ma riga successiva non solleva l'ancora t:
Statuses [0] = true;
Come posso aumentare l'evento ogni volta che si cambia una cella?
Sì, utilizzando ObservableCollection sarà il modo più semplice per andare. –
'ObservableCollection' non notifica quando viene modificato un valore di qualsiasi elemento al suo interno. –
decyclone
@decyclone: notifica se l'ennesimo elemento della raccolta viene spostato, sostituito, ecc., Che è ciò che fa il codice dell'OP. Hai ragione nel senso che questo non gestirà il caso in cui T ha proprietà e non implementa INotifyPropertyChanged, ma l'ho considerato al di fuori della portata della domanda. –