powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MVVM - Как лучше организовать в случае составного объекта?
6 сообщений из 6, страница 1 из 1
MVVM - Как лучше организовать в случае составного объекта?
    #37678764
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Везде в каноничных статьях приводят простые примеры с объектом с одним-двумя простыми свойствами строковых или числовых типов.

А у меня так. Есть объект "карта". Он состоит, допустим, из ширины и высоты, и массива "клеток". Вот мои классы модели придставления в упрощённом виде:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class MapCellVM
{
	public bool IsPassable { get; set; }

	public MapCellVM()
	{
	}
}

public class MapVM
{
	public short MapWidth { get; set; }
	public short MapHeight { get; set; }

	public MapCellVM[,] CellMap { get; set; }

	public MapVM()
	{
	}
}



Как теперь в представлении представить объект MapVM? Отдельно ли надо создавать представление для каждого MapCellVM, и потом включать его в общее представление MapVM, или можно один DataTemplate создать для всего MapVM, где внутри раскидать отдельные объекты MapCellVM? Всё осложняется ещё тем, что размер массива клеток динамический, поэтому сделать статичный DataTemplate в XAML у меня не получится.

Не могли бы вы привести пример реализации моей структуры?
...
Рейтинг: 0 / 0
MVVM - Как лучше организовать в случае составного объекта?
    #37678773
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Не могли бы вы привести пример реализации моей структуры?

Ещё добавлю, что карта должна быть реализована в Grid, клетки в представлении должны быть кнопками, каждая из которых находится в своём Row и Column этого грида, а свойство IsPassable должно влиять на цвет фона кнопки (скажем, белый - true, чёрный - false).
...
Рейтинг: 0 / 0
MVVM - Как лучше организовать в случае составного объекта?
    #37678856
...
Рейтинг: 0 / 0
MVVM - Как лучше организовать в случае составного объекта?
    #37680371
user7320,

Все правильно, только вы невнимательно читали про MVVM. Если у вас есть коллекция вью-моделей, то тогда ее нужно хранить в ObservebleCollection (не помню точно как пишется), а у вас простой массив. Соответственно, для того, что-бы эту коллекцию отобразить, нужно в замле использовать ItemsControl. И вам еще надо будет у MapCellVM объявить два свойства: X и Y.
...
Рейтинг: 0 / 0
MVVM - Как лучше организовать в случае составного объекта?
    #37696845
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руки-крюки_,

Все верно.
Автор по ходу невнимательно читал MVVM.
Действительно, если у вас коллекция - вы ее должны держать в ViewModel, которая в свою очередь цепляет данные из класса Point, а класс Point должен сидеть в Model
Ну и в самом конце (как только реализуете все нужные команды и т.п.) - ViewModel подцепите к View, а именно, во View создадите ползовательский класс, в котором в родительском эелементе (или как будет вам угодно) через DataContext подцепите "данные" из ViewModel.
...
Рейтинг: 0 / 0
MVVM - Как лучше организовать в случае составного объекта?
    #37696852
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus,

Вдруг кто меня не поймет)).
Когда я написал что ViewModel цепляет данные из Point - я имел ввиду цепляет описание класса. Так как Point - это описание класса. А вот источник данных... - поэтому не поймите меня неправильно))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MVVM - Как лучше организовать в случае составного объекта?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]