WillChangeValue для пути к ключу

У меня есть класс внутри класса со свойством, например, 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);
            }
        }

person tofutim    schedule 27.09.2013    source источник


Ответы (1)


Вот ответ, мне нужно было изменить WillChange для верхнего узла, например, WillChangeValue("Engine"). В реализованном коде WillChangeValue(keys[0])

person tofutim    schedule 27.09.2013