Привязка коллекции объектов к Canvas в MVVM? - PullRequest
1 голос
/ 10 января 2012

Я хочу создать игру .... поэтому я хочу иметь возможность динамически добавлять объект данных в Canvas и отображать его.

т.е.) 1) объект Car, содержащийИнформация об автомобиле, когда она связывается с Canvas, я хочу отобразить ее как UserControl (содержит некоторую графику).

2) Когда отображение / добавление / удаление объекта Canvas отображается на Canvas, необходимо выполнитьанимация.

Итак, есть 3 вопроса:

  1. Можно ли напрямую связать Canvas для выполнения вещей, которые я описал выше?
  2. Что лучше, я просто делаю это программным способом в коде позади?
  3. Как это происходит в MVVM?Если мои объекты Car collection находятся в моей ViewModel, единственный способ, которым я могу это сделать - это привязать это к View?Тогда, если я хочу позволить машине делать анимацию, когда пользователь нажимает какую-то клавишу, как я могу взаимодействовать с View, используя мою ViewModel?

Некоторые предложения будут оценены:)

Ответы [ 2 ]

1 голос
/ 10 января 2012

Полагаю, вам нужно несколько объектов на холсте.Для этого вам нужно создать шаблон ItemsControl.Шаблон панели должен быть холстом.Все это делается на уровне представления с помощью XAML.Затем привяжите ItemsSource вашего ItemsControl к коллекции в вашей модели представления.

1 голос
/ 10 января 2012

Для отображения анимации при добавлении элементов на панель вы можете использовать Fluid Layout из Blend SDK . ( Некоторое демонстрационное видео ; к сожалению, не показывает сгенерированный код для тех, у кого нет Blend)

О методах привязки к холсту см. этот вопрос .

Я бы не рекомендовал делать это обязательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...