void GetData(Button sender) { IDictionary <string, string> dict = new Dictionary <string, string>(); dict.Add("Count", sender.Text); if (sender.ClassId.Equals("1")) { dict.Add(nameof(InstaRoomEnum), InstaRoomEnum.Inv.ToString()); } else if (sender.ClassId.Equals("2")) { dict.Add(nameof(InstaRoomEnum), InstaRoomEnum.Wall.ToString()); } else if (sender.ClassId.Equals("3")) { dict.Add(nameof(InstaRoomEnum), InstaRoomEnum.Floor.ToString()); } else if (sender.ClassId.Equals("4")) { dict.Add(nameof(InstaRoomEnum), InstaRoomEnum.Ceil.ToString()); } try { dict.Add(nameof(InstaCategoryEnum), InstaCategory.ToString()); dict.Add("State", PlaceHolder); dict.Add(nameof(LastStackId), LayoutName); LastStackId = dict[nameof(LastStackId)]; Data = (Dictionary <string, string>)dict; LastSelectedButton = sender; } catch (Exception exception) { Crashes.TrackError(exception); } }
protected override void OnPropertyChanged(string propertyName = null) { base.OnPropertyChanged(propertyName); if (propertyName.Equals(StepsProperty.PropertyName)) { for (int i = 0; i < Steps; i++) { var button = new Button { ClassId = $"{i + 1}", Style = Application.Current.Resources["ButtonCreatorStyle"] as Style }; button.Clicked += Handle_Clicked; Children.AddHorizontal(button); } } else if (propertyName.Equals(PlaceHolderProperty.PropertyName)) { foreach (var child in Children) { (child as Button).Text = PlaceHolder; } } else if (propertyName.Equals(PickerValueProperty.PropertyName) && Data != null && LastStackId == Data[nameof(LastStackId)] && LastSelectedButton.Text != (PickerValue * 5).ToString()) { if (PickerValue == 0) { LastSelectedButton.Text = PlaceHolder; LastSelectedButton.TextColor = Color.LightGray; } else { try { if (InstaCategoryEnum.SurfaceSoilings.ToString().Equals(InstaCategory.ToString())) { Data["Count"] = (PickerValue * 5).ToString(); } else { Data["Count"] = PickerValue.ToString(); } LastSelectedButton.Text = Data["Count"]; LastSelectedButton.TextColor = Color.Black; GetData(LastSelectedButton); } catch (Exception exception) { Crashes.TrackError(exception); } } } }
void Handle_Clicked(object sender, EventArgs e) { ItemClicked?.Execute(sender); int count = 0; if (InstaCategoryEnum.SurfaceSoilings.ToString().Equals(InstaCategory.ToString())) { if (int.TryParse(((Button)sender).Text, out count)) { if (count < 100) { count = count + 5; } } else { count = 5; } } else { if (int.TryParse(((Button)sender).Text, out count)) { if (count < 100) { count = count + 1; } } else { count = 1; } } ((Button)sender).Text = count.ToString(); ((Button)sender).TextColor = Color.Black; GetData(sender as Button); }