wpf mvvm равенство
Я хотел бы использовать MVVM в проекте WPF, над которым я работаю, включая использование RelayCommands (aka DelegateCommands). Я столкнулся с интересной, но разочаровывающей проблемой в реализации равенства для моих ViewModels, изложенных здесь. У меня есть базовый класс в моей иерархии ViewModel, который рефлексивно исследует все свойства как часть сравнения на равенство, и команда постоянно завершается ошибкой, даже если она выглядит так, как будто не должна.
Как другие из вас, используя этот подход к дизайну, имеют дело с равенством?
Ура,
Berryl
1 ответ
Если вы сравниваете делегатов, вполне вероятно, что, особенно если вы используете лямбды или анонимные делегаты, их RuntimeTypes различаются.
Я бы предложил переопределить метод Equals для этих типов вручную для каждого типа. Вы, вероятно, испытываете снижение производительности при выполнении этих сравнений на основе рефлексии, и вы всегда будете сталкиваться с этими небольшими придирчивыми проблемами.
Я знаю, что это то, что вы должны решить раз и навсегда, но это маловероятно. Я надеюсь, что это не выпустит ветер из ваших парусов слишком много.