(Аз съм доста нов в WPF, така че този въпрос може да изглежда очевиден или непоследователен.)
Има изискване за редактиране на част от основните бизнес данни на приложението от дъщерен модален прозорец и за актуализиране на данните само ако потребителят натисне бутона OK в този прозорец. Нека наречем този прозорец SettingsDialog.
В този случай все още ли е разумно да се използва обвързване на WPF данни за обвързване на контролите на SettingsDialog с бизнес данни? (И ако е така, как да актуализирате бизнес данни само когато потребителят натисне бутона OK на SettingsDialog?)
Или е по-добре ръчно да присвоите стойностите на контролите на SettingsDialog от бизнес данни, докато SettingsDialog се показва, и след това да ги присвоите обратно само ако потребителят натисне бутона OK?
Какви са аргументите за правилен избор (по-малък или по-ясен код, производителност, разширяемост)?
Има ли някакъв признат модел на проектиране за подобни случаи?
РЕДАКТИРАНЕ: Отбелязах отговора на Bubblewrap като приет, защото пасва най-много на моя конкретен случай. Въпреки това отговорите на Гард и Джон също изглеждат приемливи.
За да обобщим: използването на обвързване на данни има някои предимства. Той позволява на SettingsDialog да не знае нищо за вътрешните връзки и зависимости на бизнес обекта (ако има такива), позволява лесно превключване от модален към немодален режим, намалява зависимостите между GUI и бизнес данни.
За да се приложи промяна на обект при щракване върху бутона OK, може да се използва клониране/присвояване на обект или обектът може да реализира интерфейс IEditableObject.
В някои тривиални случаи обаче използването на обвързване на данни може да доведе до някои ненужни разходи.