public void Bind(IEditorService service) { _service = service; _service.RegisterCustomNotifier(this); var lyr = service.GetEditedResource() as ILayerDefinition; Debug.Assert(lyr != null); _dlayer = lyr.SubLayer as IDrawingLayerDefinition; Debug.Assert(_dlayer != null); TextBoxBinder.BindText(txtDrawingSource, _dlayer, "ResourceId"); //NOXLATE cmbSheet.DisplayMember = "Title"; //NOXLATE cmbSheet.ValueMember = "Name"; //NOXLATE cmbSheet.DataSource = _sheets; PopulateSheets(); cmbSheet_SelectedIndexChanged(this, EventArgs.Empty); ComboBoxBinder.BindSelectedIndexChanged(cmbSheet, "SelectedValue", _dlayer, "Sheet"); //NOXLATE var minBinding = new Binding("Text", _dlayer, "MinScale"); //NOXLATE var maxBinding = new Binding("Text", _dlayer, "MaxScale"); //NOXLATE minBinding.Format += (sender, ce) => { if (ce.DesiredType != typeof(string)) return; ce.Value = Convert.ToDouble(ce.Value); }; minBinding.Parse += (sender, ce) => { if (ce.DesiredType != typeof(double)) return; double val; if (!double.TryParse(ce.Value.ToString(), out val)) return; ce.Value = val; }; maxBinding.Format += (sender, ce) => { if (ce.DesiredType != typeof(string)) return; ce.Value = Convert.ToDouble(ce.Value); }; maxBinding.Parse += (sender, ce) => { if (ce.DesiredType != typeof(double)) return; double val; if (!double.TryParse(ce.Value.ToString(), out val)) return; ce.Value = val; }; TextBoxBinder.BindText(txtMinScale, minBinding); TextBoxBinder.BindText(txtMaxScale, maxBinding); //This is not the root object so no change listeners have been subscribed _dlayer.PropertyChanged += (sender, e) => { OnResourceChanged(); }; }
public void Bind(IEditorService service) { _service = service; _service.RegisterCustomNotifier(this); var lyr = service.GetEditedResource() as ILayerDefinition; Debug.Assert(lyr != null); _dlayer = lyr.SubLayer as IDrawingLayerDefinition; Debug.Assert(_dlayer != null); TextBoxBinder.BindText(txtDrawingSource, _dlayer, nameof(_dlayer.ResourceId)); cmbSheet.DisplayMember = "Title"; //NOXLATE cmbSheet.ValueMember = "Name"; //NOXLATE cmbSheet.DataSource = _sheets; PopulateSheets(); cmbSheet_SelectedIndexChanged(this, EventArgs.Empty); ComboBoxBinder.BindSelectedIndexChanged(cmbSheet, nameof(cmbSheet.SelectedValue), _dlayer, nameof(_dlayer.Sheet)); var minBinding = new Binding(nameof(txtMinScale.Text), _dlayer, nameof(_dlayer.MinScale)); var maxBinding = new Binding(nameof(txtMaxScale.Text), _dlayer, nameof(_dlayer.MaxScale)); minBinding.Format += (sender, ce) => { if (ce.DesiredType != typeof(string)) { return; } ce.Value = Convert.ToDouble(ce.Value); }; minBinding.Parse += (sender, ce) => { if (ce.DesiredType != typeof(double)) { return; } double val; if (!double.TryParse(ce.Value.ToString(), out val)) { return; } ce.Value = val; }; maxBinding.Format += (sender, ce) => { if (ce.DesiredType != typeof(string)) { return; } ce.Value = Convert.ToDouble(ce.Value); }; maxBinding.Parse += (sender, ce) => { if (ce.DesiredType != typeof(double)) { return; } double val; if (!double.TryParse(ce.Value.ToString(), out val)) { return; } ce.Value = val; }; TextBoxBinder.BindText(txtMinScale, minBinding); TextBoxBinder.BindText(txtMaxScale, maxBinding); //This is not the root object so no change listeners have been subscribed _dlayer.PropertyChanged += WeakEventHandler.Wrap <PropertyChangedEventHandler>(OnDrawingLayerPropertyChanged, (eh) => _dlayer.PropertyChanged -= eh); }