public void Load(MainViewModel viewModel) { viewModel.CurrentTile = null; viewModel.Tiles.Clear(); viewModel.Tiles.Add(new TileViewModel() { Presenter = PresenterViewModel.Unused }); var spaceData = GetSpaceData(); foreach(var tile in spaceData.Tiles) { var tileVm = new TileViewModel(); tileVm.Position = new System.Windows.Point(tile.X, tile.Y); tileVm.Main = viewModel; if(tile.ForcedName != null) { tileVm.Description = tile.ForcedName; } tileVm.SelectedGestureTemplate = viewModel.GestureTemplates .FirstOrDefault(g => g.Name.Equals(tile.GestureTemplate, StringComparison.InvariantCultureIgnoreCase)); tileVm.SelectedPresenterTemplate = viewModel.PresenterTemplates .FirstOrDefault(g => g.Description.Equals(tile.PresenterTemplate, StringComparison.InvariantCultureIgnoreCase)); tileVm.FastContext = tile.Program; foreach(var evt in tile.Events) { var evtVm = tileVm.Events .FirstOrDefault(e => e.Name.Equals(evt.Name, StringComparison.InvariantCultureIgnoreCase)); if(evtVm != null) evtVm.Command.Script = evt.Command; } viewModel.Tiles.Add(tileVm); } viewModel.SelectTile(new System.Windows.Point(spaceData.LastX, spaceData.LastY)); }
public IEnumerable<TileViewModel> NeightbourOfTile(TileViewModel tile) { return tile.GetNeightbours() .Select(n => FindTile(n.Position)) .Where(t => t != null); }
private void Center(TileViewModel tile) { if(tile == null && ViewModel != null) tile = ViewModel.Tiles.FirstOrDefault(); if(tile == null) return; var container = list.ItemContainerGenerator.ContainerFromItem(tile); Center((FrameworkElement)container); }