private void UpdateItemGrid(SelectedItemGrid itemGrid, ItemType item, int itemIndex)
        {
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return;
            }

            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;

            UpdateValue(itemGrid.name, item.name);
            UpdateValue(itemGrid.description, item.description);

            if (itemGrid.viewButtonHandler != null)
            {
                itemGrid.viewButton.Clicked -= itemGrid.viewButtonHandler;
            }
            itemGrid.viewButtonHandler   = (s, e) => ItemViewButton_Tap(item);
            itemGrid.viewButton.Clicked += itemGrid.viewButtonHandler;

            MainPage.SetTapHandler(itemGrid.container, (s, e) => Item_DoubleTap(item), 2);
#if EXPAND_WITH_TAP
            MainPage.AddTapHandler(itemGrid.container, (s, e) => Item_Tap(itemGrid.selected), 1);
#endif
        }
 private void RemoveItemGrid(SelectedItemGrid itemGrid)
 {
     if (itemGrid == null)
     {
         return;
     }
     if (layout != null)
     {
         layout.Children.Remove(itemGrid.container);
     }
     itemGrids.Remove(itemGrid);
     selectedItemGridsPool.Add(itemGrid);
 }
        protected void itemGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            dtt = (DataTable)this.ViewState["SelectedItemDT"];

            DataRow row;

            if (e.CommandName.Equals("Add"))
            {
                int index = Convert.ToInt32(e.CommandArgument.ToString());
                //GridViewRow gvr = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;
                //int index = gvr.RowIndex;
                string ItemId   = itemGrid.DataKeys[index].Value.ToString();
                string ItemName = itemGrid.DataKeys[index]["ItemName"].ToString();
                string ItemQty  = itemGrid.DataKeys[index]["Qty"].ToString();
                string ItemBR   = itemGrid.DataKeys[index]["BilledRate"].ToString();
                string ItemNR   = itemGrid.DataKeys[index]["NetRate"].ToString();

                bool isexist = false;

                foreach (DataRow drr in dtt.Rows)
                {
                    string ItemId1 = drr["ItemId"].ToString();
                    if (ItemId == ItemId1)
                    {
                        isexist = true;
                        break;
                    }
                }

                if (isexist)
                {
                    Response.Write("<script language='javascript'>alert(\"" + HardCodedValues.BuddaResource.ItemRepeat + "\");</script>");
                }
                else
                {
                    row               = dtt.NewRow();
                    row["ItemId"]     = ItemId;
                    row["ItemName"]   = ItemName;
                    row["Quantity"]   = ItemQty;
                    row["BilledRate"] = ItemBR;
                    row["Net Rate"]   = ItemNR;
                    dtt.Rows.Add(row);
                    SelectedItemGrid.DataSource = dtt;
                    SelectedItemGrid.DataBind();
                }
            }
        }
        private SelectedItemGrid CreateSelectedItemGrid(ItemType item, int itemIndex)
        {
            if (item == null)
            {
                return(null);
            }
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return(null);
            }
            if (selectedItemGridsPool.Count > 0)
            {
                var itemGrid = selectedItemGridsPool[0];
                selectedItemGridsPool.RemoveAt(0);
                UpdateItemGrid(itemGrid, item, itemIndex);
                return(itemGrid);
            }
            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;
            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) => ItemViewButton_Tap(item);

            viewButton.Clicked += viewButtonHandler;
            nameValueStack.Children.Add(nameValue);
            nameValueStack.Children.Add(viewButton);

            var descriptionTitle = CreateLabel("Description: ");
            var descriptionValue = CreateFrame(item.description);

#if USE_GRID
            var container = new Grid()
            {
                ColumnSpacing   = 5,
                RowSpacing      = 5,
                BackgroundColor = Color.LightGray,
            };
            container.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
                });
            }
            container.RowDefinitions = rowDefinitions;

            var row = 0;
            container.Children.Add(nameTitleStack, 0, row);
            container.Children.Add(nameValueStack, 1, row);
            row += 1;

            container.Children.Add(descriptionTitle, 0, 2, row, row + 1);
            row += 1;

            container.Children.Add(descriptionValue, 0, 2, row, row + 1);
            row += 1;
#else
            var container = new StackLayout()
            {
                BackgroundColor = Color.LightGray,
            };
            var nameStack = new StackLayout()
            {
                Orientation = StackOrientation.Horizontal,
            };
            nameStack.Children.Add(nameTitleStack);
            nameStack.Children.Add(nameValueStack);
            container.Children.Add(nameStack);
            container.Children.Add(descriptionTitle);
            container.Children.Add(descriptionValue);
#endif

            MainPage.AddTapHandler(container, (s, e) => Item_DoubleTap(item), 2);
#if EXPAND_WITH_TAP
            MainPage.AddTapHandler(container, (s, e) => Item_Tap(selectedcb), 1);
#endif

            var newItemGrid = new SelectedItemGrid()
            {
                container         = container,
                selectedHandler   = selectedHandler,
                selected          = selectedcb,
                viewButtonHandler = viewButtonHandler,
                viewButton        = viewButton,
                nameTitle         = nameTitle,
                name             = nameValue.Content as Label,
                descriptionTitle = descriptionTitle,
                description      = descriptionValue.Content as Label,
            };
            return(newItemGrid);
        }
 private void UpdateItemGrid(SelectedItemGrid itemGrid, KeyValuePair <ItemType, int> kvp)
 {
     UpdateItemGrid(itemGrid, kvp.Key, kvp.Value);
 }