|
Использование 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/topic.php?fid=21&fpage=50&tid=1442223]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 124ms |
0 / 0 |