private void PropertyValueChanged(object sender, string propertyname, string propertyvalue) { var val = _values.FirstOrDefault(x => x.OriginalKey == propertyname); var li = KeyValuesList.Items.OfType <ListViewItem>().FirstOrDefault(x => ((string)x.Tag) == propertyname); if (val == null) { if (li != null) { KeyValuesList.Items.Remove(li); } return; } val.IsModified = true; val.Value = propertyvalue; if (li == null) { var dt = SmartEditButton.Checked ? val.DisplayText(Document.GameData) : val.OriginalKey; var dv = SmartEditButton.Checked ? val.DisplayValue(Document.GameData) : val.Value; li = new ListViewItem(dt) { Tag = val.OriginalKey, BackColor = val.GetColour() }; KeyValuesList.Items.Add(li).SubItems.Add(dv); } else { li.BackColor = val.GetColour(); li.SubItems[1].Text = SmartEditButton.Checked ? val.DisplayValue(Document.GameData) : val.Value; } if (propertyname == "angles" && propertyvalue != Angles.GetAnglePropertyString()) { Angles.SetAnglePropertyString(propertyvalue); } }
private void AnglesChanged(object sender, AngleControl.AngleChangedEventArgs e) { if (_populating) { return; } PropertyValueChanged(sender, "angles", Angles.GetAnglePropertyString()); if (KeyValuesList.SelectedIndices.Count > 0 && ((string)KeyValuesList.SelectedItems[0].Tag) == "angles" && SmartEditControlPanel.Controls.Count > 0 && SmartEditControlPanel.Controls[0] is SmartEditControl) { ((SmartEditControl)SmartEditControlPanel.Controls[0]).SetProperty("angles", "angles", Angles.GetAnglePropertyString(), null); } }