Nehmen wir an, ich habe eine Klasse:
class Foo
{
public string Bar
{
get { ... }
}
public string this[int index]
{
get { ... }
}
}
Ich kann diese beiden Eigenschaften mit "{Binding Path=Bar}" und "{Binding Path=[x]}" binden. Gut.
Nehmen wir nun an, ich möchte INotifyPropertyChanged implementieren:
class Foo : INotifyPropertyChanged
{
public string Bar
{
get { ... }
set
{
...
if( PropertyChanged != null )
{
PropertyChanged( this, new PropertyChangedEventArgs( "Bar" ) );
}
}
}
public string this[int index]
{
get { ... }
set
{
...
if( PropertyChanged != null )
{
PropertyChanged( this, new PropertyChangedEventArgs( "????" ) );
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
Was kommt in den mit ????? gekennzeichneten Teil (ich habe string.Format("[{0}]", index) ausprobiert, aber es funktioniert nicht). Ist dies ein Fehler in WPF, gibt es eine alternative Syntax, oder ist es einfach, dass INotifyPropertyChanged nicht so mächtig wie normale Bindung ist?