У меня есть класс внутри класса со свойством, например, Car.Engine.Name. Я внедрил KVC и хотел бы отправить WillChangeValue для «Engine.Name», но, похоже, он не регистрируется. С другой стороны, отправка WillChangeValue для «Name» для Car.Name работает.
Object target = _t;
PropertyInfo info;
for (int i = 0; i < keys.Length; i++) {
info = target.GetType ().GetProperty (keys[i]);
if (i == keys.Length - 1) {
WillChangeValue (nsKeyPath); // <--- doesn't seem to work if there is a nontrival keypath
info.SetValue (target, nsValue.ToObject (info.PropertyType), null);
DidChangeValue (nsKeyPath);
} else {
target = info.GetValue (target, null);
}
}