|
Использование Model classes напрямую для байндинга в XAML
|
|||
---|---|---|---|
#18+
всем привет. "Архитекрурный" вопрос: есть необходимость привязать свои модельные классы к узлам TreeView используя байндинг. Узлов много (до десятков тыс), поэтому включена treeview UI virtualization. Кроме всего прочего, понадобится механизм для удобного программного раскрытия и селектирования узлов - т.е. классу, который будет байндится, понадобятся свойства IsSelected, IsExpanded для байндинга в TreeViewItem style. И собственно вопрос: Моим потребностям для визуализации ПОЧТИ отвечают базовые model classes. Если я прямо к ним прикручу реализацию INotifyPropertyChanged inteface, а также добавлю свойства IsExpanded и IsSelected, то все мои потребности для WPF байндинга будут удовлетворены. Но вообще говоря, правильно было БЫ создать обертку - новый viewmodel class, куда бы вынести и реализацию интерфейса, и двух этих свойств. Смущает то что надо вводить новую сущность и инстанциировать ее для каждого инстанса модельного класса. А это многие тысячи. В итоге вопрос что предпочесть - "неправильный" MVVM, где прямо в модели добавляются фишки для WPF/байндинга или вводить-таки отдельный VM class? У кого-нибудь были подобные "дилеммы"? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 17:10 |
|
Использование Model classes напрямую для байндинга в XAML
|
|||
---|---|---|---|
#18+
sandyp, Смотрите на это с другой стороны: ваша Model автоматически превратится в ViewModel и MVVM от того не станет "неправильным", что может стать "неправильным", так это ваш бизнес слой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 17:46 |
|
Использование Model classes напрямую для байндинга в XAML
|
|||
---|---|---|---|
#18+
sandyp, Из своего опыта могу сказать что делать обертку для IsSelected и т.д. - это только лишние трудозатраты. Но это мое IMHO. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 17:53 |
|
|
start [/forum/search_topic.php?author=%D0%94%D0%BE%D0%BA%D1%82%D0%BE%D1%80%D0%9A%D0%9E%D0%A2&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 788ms |
total: | 953ms |
0 / 0 |