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