Вопрос

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

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

Ваше здоровье,
Беррил

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top