/// <summary> /// /// </summary> public MonstersWidgetPlugin() { _viewModel = new RoomMonstersViewModel(); _monstersWidgetControl = new MonstersWidgetControl { DataContext = _viewModel }; }
/// <summary> /// Initializes a new instance of the <see cref="RoomMonstersUnit"/> class. /// </summary> /// <param name="messageConveyor">The message conveyor.</param> /// <param name="monstersWidgetControl">The monsters widget control.</param> /// <param name="roomMonstersViewModel">The room monsters view model.</param> public RoomMonstersUnit([NotNull] MessageConveyor messageConveyor, [NotNull] MonstersWidgetControl monstersWidgetControl, [NotNull] RoomMonstersViewModel roomMonstersViewModel) : base(messageConveyor) { Assert.ArgumentNotNull(messageConveyor, "messageConveyor"); Assert.ArgumentNotNull(monstersWidgetControl, "monstersWidgetControl"); Assert.ArgumentNotNull(roomMonstersViewModel, "roomMonstersViewModel"); _monstersWidgetControl = monstersWidgetControl; _roomMonstersViewModel = roomMonstersViewModel; }
public void UpdateModel([NotNull] List <MonsterStatus> characters) { Assert.ArgumentNotNull(characters, "roomMonstersMessage"); Action actToExecute = () => { RoomMonstersViewModel viewModel = DataContext as RoomMonstersViewModel; viewModel.UpdateModel(characters); }; Application.Current.Dispatcher.BeginInvoke(actToExecute, DispatcherPriority.Background); }
/// <summary> /// /// </summary> public void PreviousMonster() { Action executeToAct = () => { if (this.DataContext != null) { RoomMonstersViewModel _roomMonstersViewModel = (RoomMonstersViewModel)this.DataContext; if (_roomMonstersViewModel.SelectedMonster == null || _roomMonstersViewModel.Monsters.IndexOf(_roomMonstersViewModel.SelectedMonster) == 0) { _roomMonstersViewModel.SelectedMonster = _roomMonstersViewModel.Monsters.LastOrDefault(); return; } var index = _roomMonstersViewModel.Monsters.IndexOf(_roomMonstersViewModel.SelectedMonster); _roomMonstersViewModel.SelectedMonster = _roomMonstersViewModel.Monsters[index - 1]; } }; Application.Current.Dispatcher.BeginInvoke(executeToAct, DispatcherPriority.Background); }