|
MVVM - Как лучше организовать в случае составного объекта?
|
|||
---|---|---|---|
#18+
Везде в каноничных статьях приводят простые примеры с объектом с одним-двумя простыми свойствами строковых или числовых типов. А у меня так. Есть объект "карта". Он состоит, допустим, из ширины и высоты, и массива "клеток". Вот мои классы модели придставления в упрощённом виде: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Как теперь в представлении представить объект MapVM? Отдельно ли надо создавать представление для каждого MapCellVM, и потом включать его в общее представление MapVM, или можно один DataTemplate создать для всего MapVM, где внутри раскидать отдельные объекты MapCellVM? Всё осложняется ещё тем, что размер массива клеток динамический, поэтому сделать статичный DataTemplate в XAML у меня не получится. Не могли бы вы привести пример реализации моей структуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2012, 19:29 |
|
MVVM - Как лучше организовать в случае составного объекта?
|
|||
---|---|---|---|
#18+
>> Не могли бы вы привести пример реализации моей структуры? Ещё добавлю, что карта должна быть реализована в Grid, клетки в представлении должны быть кнопками, каждая из которых находится в своём Row и Column этого грида, а свойство IsPassable должно влиять на цвет фона кнопки (скажем, белый - true, чёрный - false). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2012, 19:34 |
|
MVVM - Как лучше организовать в случае составного объекта?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2012, 21:00 |
|
MVVM - Как лучше организовать в случае составного объекта?
|
|||
---|---|---|---|
#18+
user7320, Все правильно, только вы невнимательно читали про MVVM. Если у вас есть коллекция вью-моделей, то тогда ее нужно хранить в ObservebleCollection (не помню точно как пишется), а у вас простой массив. Соответственно, для того, что-бы эту коллекцию отобразить, нужно в замле использовать ItemsControl. И вам еще надо будет у MapCellVM объявить два свойства: X и Y. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2012, 16:07 |
|
MVVM - Как лучше организовать в случае составного объекта?
|
|||
---|---|---|---|
#18+
Руки-крюки_, Все верно. Автор по ходу невнимательно читал MVVM. Действительно, если у вас коллекция - вы ее должны держать в ViewModel, которая в свою очередь цепляет данные из класса Point, а класс Point должен сидеть в Model Ну и в самом конце (как только реализуете все нужные команды и т.п.) - ViewModel подцепите к View, а именно, во View создадите ползовательский класс, в котором в родительском эелементе (или как будет вам угодно) через DataContext подцепите "данные" из ViewModel. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2012, 00:55 |
|
MVVM - Как лучше организовать в случае составного объекта?
|
|||
---|---|---|---|
#18+
unknownfromrus, Вдруг кто меня не поймет)). Когда я написал что ViewModel цепляет данные из Point - я имел ввиду цепляет описание класса. Так как Point - это описание класса. А вот источник данных... - поэтому не поймите меня неправильно)) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2012, 01:10 |
|
|
start [/forum/topic.php?fid=21&fpage=42&tid=1441899]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 118ms |
0 / 0 |