Я делаю небольшую игру в WPF, чтобы понять ее лучше, у меня есть родительский элемент управления, у которого есть 2 дочерних пользовательских элемента управления.Отдельный Usercontrol, выполняющий метод в другом Usercontrol
Первый элемент управления дочернего пользователя имеет кнопки, которые обновляют положение объекта во втором пользовательском контроле.
В MainWindow.xaml.cs У меня есть
controllersplaceholder.Content = new ControllerView1()
gameplaceholder.Content = new GameView1()
Как вы можете видеть, controllersplaceholder не имеет каких-либо знаний о GameView1. Чтобы обновить позицию элемента в GameView1, мне пришлось бы передать ссылку GameView1 в ControllerView1 и выполнить методы в GameView1(). Вопрос: как я могу это сделать так, чтобы ControllerView1, ControllerView2 легко выполнил методы в GameView1.
Привет, это было бы в состоянии передать информацию от ControllerView к Gameview, а? Я думал об использовании DTO .. но если я смогу избежать этого, то лучше –
@LewsTherin: естественно. События в .NET позволяют передавать любые аргументы с помощью класса ['EventArgs'] (http://msdn.microsoft.com/en-us/library/system.eventargs.aspx) и классов, полученных из него (вы можете создать свой пользовательские). –
@LewsTherin Да, вы можете. Создайте свойства в 'controller' для информации, которую вы хотите отправить, и свойств в' gameView' за то, что ему нужно получить. Содержимое лямбда, которое отвечает вышеприведенный ответ, может установить значение 'gameview' с соответствующим свойством от' controller'. – Servy