using DevExpress.XtraEditors; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geodatabase; using KGIS.Plugin.LayerProperty.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace KGIS.Plugin.LayerProperty.View { public partial class FormUniqueRendererFieldMatch : XtraForm { private string[] valueFields; public string[] ValueFields { get { return this.valueFields; } set { this.valueFields = value; } } public FormUniqueRendererFieldMatch() { InitializeComponent(); } public void InitForm(IFeatureLayer currentLyer, IUniqueValueRenderer uniqueValueRenderer) { try { this.groupControl1.Enabled = false; this.groupControl2.Enabled = false; this.groupControl3.Enabled = false; int fieldCount = uniqueValueRenderer.FieldCount; this.valueFields = new string[] { "", "", "" }; for (int i = 0; i < fieldCount; i++) { if (i == 0) { this.lblValueField1.Text = uniqueValueRenderer.get_Field(i); this.cmbLayerFields1.InitFieldList(currentLyer.FeatureClass.Fields, this.lblValueField1.Text, true, false, false); this.groupControl1.Enabled = true; } if (i == 1) { this.lblValueField2.Text = uniqueValueRenderer.get_Field(i); this.cmbLayerFields2.InitFieldList(currentLyer.FeatureClass.Fields, this.lblValueField2.Text, true, false, false); this.groupControl2.Enabled = true; } if (i == 2) { this.lblValueField3.Text = uniqueValueRenderer.get_Field(i); this.cmbLayerFields3.InitFieldList(currentLyer.FeatureClass.Fields, this.lblValueField3.Text, true, false, false); this.groupControl3.Enabled = true; } } this.GetValueFields(); } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void InitFieldList(IFields fids, ref ComboBoxEdit cmb, string selected) { cmb.Properties.Items.Clear(); ItemInfo itemInfo = new ItemInfo(null, "none"); cmb.SelectedItem = itemInfo; for (int i = 0; i < fids.FieldCount; i++) { IField field = fids.get_Field(i); itemInfo = new ItemInfo(field, (field.AliasName == "") ? field.Name : field.AliasName); cmb.Properties.Items.Add(itemInfo); if (field.Name == selected) { cmb.SelectedItem = itemInfo; } } } private void btnOk_Click(object sender, System.EventArgs e) { this.GetValueFields(); base.DialogResult = DialogResult.OK; base.Close(); } private void btnCancel_Click(object sender, System.EventArgs e) { base.DialogResult = DialogResult.Cancel; base.Close(); } private void GetValueFields() { try { IField selectedField = this.cmbLayerFields1.SelectedField; if (selectedField != null) { this.valueFields.SetValue(selectedField.Name, 0); } selectedField = this.cmbLayerFields2.SelectedField; if (selectedField != null) { this.valueFields.SetValue(selectedField.Name, 1); } selectedField = this.cmbLayerFields3.SelectedField; if (selectedField != null) { this.valueFields.SetValue(selectedField.Name, 2); } } catch (Exception ex) { //RdbUtil.AddException(ex); } } } }