wpf mvvm равенство

Я хотел бы использовать MVVM в проекте WPF, над которым я работаю, включая использование RelayCommands (aka DelegateCommands). Я столкнулся с интересной, но разочаровывающей проблемой в реализации равенства для моих ViewModels, изложенных здесь. У меня есть базовый класс в моей иерархии ViewModel, который рефлексивно исследует все свойства как часть сравнения на равенство, и команда постоянно завершается ошибкой, даже если она выглядит так, как будто не должна.

Как другие из вас, используя этот подход к дизайну, имеют дело с равенством?

Ура,
Berryl

1 ответ

Решение

Если вы сравниваете делегатов, вполне вероятно, что, особенно если вы используете лямбды или анонимные делегаты, их RuntimeTypes различаются.

Я бы предложил переопределить метод Equals для этих типов вручную для каждого типа. Вы, вероятно, испытываете снижение производительности при выполнении этих сравнений на основе рефлексии, и вы всегда будете сталкиваться с этими небольшими придирчивыми проблемами.

Я знаю, что это то, что вы должны решить раз и навсегда, но это маловероятно. Я надеюсь, что это не выпустит ветер из ваших парусов слишком много.

Другие вопросы по тегам