Ho una classe con una proprietà indicizzatore, con una stringa chiave:PropertyChanged per la proprietà indicizzatore
public class IndexerProvider {
public object this[string key] {
get
{
return ...
}
set
{
...
}
}
...
}
mi legano a un'istanza di questa classe in WPF, utilizzando indicizzatore la notazione:
<TextBox Text="{Binding [IndexerKeyThingy]}">
Funziona bene, ma desidero generare un evento PropertyChanged
quando cambia uno dei valori dell'indicizzatore. Ho provato ad innalzarlo con un nome di proprietà di "[keyname]" (cioè incluso [] attorno al nome della chiave), ma non sembra funzionare. Non ho errori di binding nella mia finestra di output.
Non riesco a utilizzare CollectionChangedEvent, perché l'indice non è basato su integer. E tecnicamente, l'oggetto non è comunque una collezione.
Posso fare questo, e quindi, come?
Questo funziona benissimo. Strano che mi mancava quel blogpost nelle mie ricerche su Google. – Inferis
Questa soluzione funziona benissimo, ma ha una seccante limitazione: non è possibile specificare che il valore venga modificato solo per una chiave ... Quindi se si hanno associazioni su più chiavi, verranno tutte aggiornate –
Alcuni anni dopo, ora c'è la parola chiave 'nameof'. Lo uso per tutte le mie chiamate di 'FirePropertyChange', ma puoi" nominare "l'indicizzatore in qualche modo? – Flynn1179