private void UpdateGearItemGrid(SelectedGearItemGrid gearItemGrid, CharacterSheet.GearItem item, int itemIndex) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } if (gearItemGrid.selectedHandler != null) { gearItemGrid.selected.CheckedChanged -= gearItemGrid.selectedHandler; } gearItemGrid.selectedHandler = (s, e) => GearItem_CheckedChanged(item, e.Value); gearItemGrid.selected.IsChecked = item.selected; gearItemGrid.selected.CheckedChanged += gearItemGrid.selectedHandler; gearItemGrid.name.Text = item.name; gearItemGrid.amount.Text = item.amount.GetTotal(sheet).ToString(); gearItemGrid.weight.Text = item.weight.GetTotal(sheet).ToString(); gearItemGrid.description.Text = item.description; if (gearItemGrid.viewButtonHandler != null) { gearItemGrid.viewButton.Clicked -= gearItemGrid.viewButtonHandler; } gearItemGrid.viewButtonHandler = (s, e) => GearItemViewButton_Tap(item, itemIndex); gearItemGrid.viewButton.Clicked += gearItemGrid.viewButtonHandler; MainPage.SetTapHandler(gearItemGrid.grid, (s, e) => GearItem_DoubleTap(item, itemIndex), 2); #if EXPAND_WITH_TAP MainPage.AddTapHandler(gearItemGrid.grid, (s, e) => GearItem_Tap(gearItemGrid.selected), 1); #endif }
private void RemoveGearItemGrid(SelectedGearItemGrid gearItemGrid) { if (gearItemGrid == null) { return; } Gear.Children.Remove(gearItemGrid.grid); gearItemGrids.Remove(gearItemGrid); selectedGearItemGridsPool.Add(gearItemGrid); }
private SelectedGearItemGrid CreateSelectedGearItemGrid(CharacterSheet.GearItem item, int itemIndex) { if (item == null) { return(null); } var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return(null); } if (selectedGearItemGridsPool.Count > 0) { var gearItemGrid = selectedGearItemGridsPool[0]; selectedGearItemGridsPool.RemoveAt(0); UpdateGearItemGrid(gearItemGrid, item, itemIndex); return(gearItemGrid); } var grid = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; grid.ColumnDefinitions = new ColumnDefinitionCollection() { new ColumnDefinition() { Width = GridLength.Auto } , new ColumnDefinition() { Width = GridLength.Star }, }; const int count = 14; var rowDefinitions = new RowDefinitionCollection(); for (var i = 0; i < count; i++) { rowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); } grid.RowDefinitions = rowDefinitions; var selectedcb = new CheckBox() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsChecked = item.selected, }; EventHandler <CheckedChangedEventArgs> selectedHandler = (s, e) => GearItem_CheckedChanged(item, e.Value); selectedcb.CheckedChanged += selectedHandler; var nameTitle = CreateLabel("Name: "); var nameTitleStack = new StackLayout() { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, }; nameTitleStack.Children.Add(selectedcb); nameTitleStack.Children.Add(nameTitle); var nameValueStack = new StackLayout() { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; var nameValue = CreateFrame(item.name); var viewButton = new Button() { Text = "View", FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Button)), TextColor = Color.Black, VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, }; EventHandler viewButtonHandler = (s, e) => GearItemViewButton_Tap(item, itemIndex); viewButton.Clicked += viewButtonHandler; nameValueStack.Children.Add(nameValue); nameValueStack.Children.Add(viewButton); var row = 0; grid.Children.Add(nameTitleStack, 0, row); grid.Children.Add(nameValueStack, 1, row); row += 1; var amountTitle = CreateLabel("Amount: "); var amountValue = CreateFrame(item.amount.GetTotal(sheet).ToString()); grid.Children.Add(amountTitle, 0, row); grid.Children.Add(amountValue, 1, row); row += 1; var weightTitle = CreateLabel("Weight: "); var weightValue = CreateFrame(item.weight.GetTotal(sheet).ToString()); grid.Children.Add(weightTitle, 0, row); grid.Children.Add(weightValue, 1, row); row += 1; var descriptionTitle = CreateLabel("Description: "); grid.Children.Add(descriptionTitle, 0, 2, row, row + 1); row += 1; var descriptionValue = CreateFrame(item.description); grid.Children.Add(descriptionValue, 0, 2, row, row + 1); row += 1; MainPage.AddTapHandler(grid, (s, e) => GearItem_DoubleTap(item, itemIndex), 2); #if EXPAND_WITH_TAP MainPage.AddTapHandler(grid, (s, e) => GearItem_Tap(selectedcb), 1); #endif var newGearItemGrid = new SelectedGearItemGrid() { grid = grid, selectedHandler = selectedHandler, selected = selectedcb, viewButtonHandler = viewButtonHandler, viewButton = viewButton, nameTitle = nameTitle, name = nameValue.Content as Label, amountTitle = amountTitle, amount = amountValue.Content as Label, weightTitle = weightTitle, weight = weightValue.Content as Label, descriptionTitle = descriptionTitle, description = descriptionValue.Content as Label, }; return(newGearItemGrid); }
private void UpdateGearItemGrid(SelectedGearItemGrid gearItemGrid, KeyValuePair <CharacterSheet.GearItem, int> kvp) { UpdateGearItemGrid(gearItemGrid, kvp.Key, kvp.Value); }