Привязка данных и производительность: высока ли стоимость привязки данных? - PullRequest
1 голос
/ 06 мая 2011

Я проектирую очень простое WPF-приложение на C #, следуя шаблону MVVM, с ListView, показывающим около 10 элементов (привязанных к объекту, содержащему детали приложения) с Checkbox, позволяющим пользователю выбирать некоторые приложения. , а затем нажмите на кнопку «Запуск».

Это приложение предназначено для конкретных пользователей компании (инвестиционный банк), у которых всегда запущено множество чрезвычайно тяжелых приложений (например, финансовые программы в реальном времени, т.е. Bloomberg ).

Хотя мое приложение идеально работает на моем ПК и компьютерах членов ИТ-группы, я начал развертывание приложения для конечных пользователей и столкнулся с довольно неприятной ситуацией: один клик , действительно, только один на предмете занимает около 2 секунд, чтобы активировать CheckBox.

Они уже используют базовое приложение Winforms, которое идеально подходит для такого рода действий.

Поэтому я задаю себе вопрос, который может показаться довольно глупым, учитывая, что DataBinding является ядром MVVM, но подразумевает ли DataBinding более высокую стоимость, чем EventListeners?

Спасибо!

1 Ответ

1 голос
/ 07 мая 2011

Я работал над приложением VoIP, которое должно было поддерживать огромный список контактов, и у каждого контакта было несколько данных, отображаемых на его карточке контакта (в основном ListBoxItem), которые менялись с высокой частотой. У нас были некоторые проблемы, но не все так плохо, как вы говорите. Две вещи приходят мне на ум: Сколько привязок у вас есть и сколько NotifyPropertyChanged генерируется? Может случиться так, что для одного свойства, которое изменяется в вашей модели, вы генерируете слишком много событий (просто возможность) - Вы говорите о нажатии на CheckBox. Что происходит в вашем сеттере? Насколько это тяжело? Можете ли вы использовать асинхронную операцию? Иногда бывает сложно использовать элементы управления, такие как флажки и кнопки, если действие, которое они вызывают, может занять много времени.

Только мои 2 цента.

...