Re: Вопрос по EditableObject
От: ili Россия  
Дата: 20.04.09 04:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день.

А>Как быть если я хочу воспользоваться удобствами EditableObject, но мне нужно реализовать свою логику в свойствах класса и к примеру дополнительно еще реализовать IDataErrorInfo? Т.е. допустим есть сложная валидация в сеттере свойства и установка IDataErrorInfo.Error при необходимости. Как быть с таким свойством? Как сделать чтобы IsDirty работало корректно при изменении такого свойства?
А>Спасибо за помощь.

ручками... все ручками.

хотя, есть один способ антоматизации труда...

абстрактные поля класса "упаковываются" в EditableValue<T> или EditableObjectHolder
рулится это аттрибутами InstanceType или GlobalInstanceType

посмотрите как реализованы EditableValue<T> и EditableObjectHolder

думаю, можно сделать что-то вроде:

public struct MyWrapper<T> : IEditable, IMemberwiseEditable
{
    [GetValue, SetValue]
    public T Value
    {
        get { return _current;  }
        set 
        { 
            // some additional code here

            _current = value; 
        }
    }
}

public abstract class MyEntity : EditableObject<MyEntity>
{
    [InstanceType(typeof(MyWrapper<int>))]
    public abstract int SimeValue { get; set; }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.