虽然在调查一个看似不相关的问题 ,我已经打了一些意想不到的绑定行为。 有
class StringRecord : INotifyPropertyChanged
{
public string Key {get; set; } // real INPC implementation is omitted
public string Value { get; set; } // real INPC implementation is omitted
...
}
class Container
{
public ObservableKeyedCollection<string, StringRecord> Params { get; set; }
...
{
现在,当一个TextBox绑定到明显的方式收集项目之一
<TextBox Text="{Binding Params[APN_HOST].Value}" />
该StringRecord的实例的PropertyChanged事件不会开火编辑文本。 但是,重写它作为
<TextBox DataContext="{Binding Params[APN_HOST]}" Text="{Binding Value}" />
使得奇迹,事件开始正确触发。
为什么?