private void UpdateItemGrid(ItemGrid itemGrid, ItemType item, int itemIndex) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } MainPage.SetTapHandler(itemGrid.container, (s, e) => Item_DoubleTap(item), 1); #if EXPAND_SELECTED if (itemGrid.selectedHandler != null) { itemGrid.selected.CheckedChanged -= itemGrid.selectedHandler; } itemGrid.selectedHandler = (s, e) => Item_CheckedChanged(item, e.Value); UpdateValue(itemGrid.selected, item.selected); itemGrid.selected.CheckedChanged += itemGrid.selectedHandler; #if EXPAND_WITH_TAP MainPage.AddTapHandler(itemGrid.container, (s, e) => Item_Tap(itemGrid.selected), 1); #endif #endif var name = item.AsString(sheet); UpdateValue(itemGrid.name, name); #if SHOW_VIEW_BUTTON if (itemGrid.viewButtonHandler != null) { itemGrid.viewButton.Clicked -= itemGrid.viewButtonHandler; } itemGrid.viewButtonHandler = (s, e) => ItemViewButton_Tap(item); itemGrid.viewButton.Clicked += itemGrid.viewButtonHandler; #endif }
private void UpdateItem(Controls controls, ItemType item) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } MainPage.SetTapHandler(controls.up, () => MoveItem(item, -1, true)); MainPage.AddTapHandler(controls.up, () => MoveItem(item, -1, false), 2); controls.text.Text = item.AsString(sheet); MainPage.SetTapHandler(controls.down, () => MoveItem(item, 1, true)); MainPage.AddTapHandler(controls.down, () => MoveItem(item, 1, false), 2); }
private ItemGrid CreateItemGrid(ItemType item, int itemIndex) { if (item == null) { return(null); } var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return(null); } if (itemGridsPool.Count > 0) { var itemGrid = itemGridsPool[0]; itemGridsPool.RemoveAt(0); UpdateItemGrid(itemGrid, item, itemIndex); return(itemGrid); } #if EXPAND_SELECTED var selectedcb = new CheckBox() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsChecked = item.selected, }; EventHandler <CheckedChangedEventArgs> selectedHandler = (s, e) => Item_CheckedChanged(item, e.Value); selectedcb.CheckedChanged += selectedHandler; #endif var itemNameFrame = CreateFrame(item.AsString(sheet)); var itemNameLabel = itemNameFrame.Content as Label; itemNameLabel.TextDecorations = TextDecorations.Underline; #if SHOW_VIEW_BUTTON 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) => ItemViewButton_Tap(item); viewButton.Clicked += viewButtonHandler; #endif #if USE_GRID var container = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; container.ColumnDefinitions = new ColumnDefinitionCollection() { #if EXPAND_SELECTED new ColumnDefinition() { Width = GridLength.Auto }, #endif new ColumnDefinition() { Width = GridLength.Star }, new ColumnDefinition() { Width = GridLength.Auto }, }; container.RowDefinitions = new RowDefinitionCollection() { new RowDefinition() { Height = GridLength.Auto }, }; var column = 0; #if EXPAND_SELECTED container.Children.Add(selectedcb, column++, 0); #endif container.Children.Add(itemNameFrame, column++, 0); container.Children.Add(viewButton, column++, 0); #else var container = new StackLayout() { BackgroundColor = Color.LightGray, Orientation = StackOrientation.Horizontal, }; #if EXPAND_SELECTED container.Children.Add(selectedcb); #endif container.Children.Add(itemNameFrame); #if SHOW_VIEW_BUTTON container.Children.Add(viewButton); #endif #endif MainPage.AddTapHandler(container, (s, e) => Item_DoubleTap(item), 1); #if EXPAND_SELECTED MainPage.AddTapHandler(container, (s, e) => Item_Tap(selectedcb), 1); #endif var newItemGrid = new ItemGrid() { container = container, #if EXPAND_SELECTED selectedHandler = selectedHandler, selected = selectedcb, #endif name = itemNameLabel, #if SHOW_VIEW_BUTTON viewButton = viewButton, viewButtonHandler = viewButtonHandler, #endif }; return(newItemGrid); }