public override System.Windows.Data.BindingBase Save() { if (channel != null) { System.Windows.Data.Binding bind = new System.Windows.Data.Binding("Value"); ChannelDataProvider cdp = new ChannelDataProvider(); cdp.ChannelName = channel.PluginId + "." + channel.Name; bind.Source = cdp; cdp.Refresh(); SolidBrushConverter conv = new SolidBrushConverter(); conv.MinValue = Decimal.ToDouble(minEdit.Value); conv.MaxValue = Decimal.ToDouble(maxEdit.Value); conv.StartColor = System.Windows.Media.Color.FromArgb( startColorButton.BackColor.A, startColorButton.BackColor.R, startColorButton.BackColor.G, startColorButton.BackColor.B); conv.EndColor = System.Windows.Media.Color.FromArgb( endColorButton.BackColor.A, endColorButton.BackColor.R, endColorButton.BackColor.G, endColorButton.BackColor.B); bind.Converter = conv; bind.Mode = BindingMode.TwoWay; DependencyObject depObj; DependencyProperty depProp; if (Property.GetWpfObjects(out depObj, out depProp)) { bind.FallbackValue = depObj.GetValue(depProp); } return(bind); } else { return(base.Save()); } }
public override void Initialize(object element, PropertyWrapper property, System.Windows.Data.BindingBase binding) { base.Initialize(element, property, binding); System.Windows.Data.Binding bind = binding as System.Windows.Data.Binding; if (bind != null) { ChannelDataProvider cdp = (ChannelDataProvider)bind.Source; AddChannel(cdp.Channel); SolidBrushConverter sbc = bind.Converter as SolidBrushConverter; minEdit.Value = (Decimal)sbc.MinValue; maxEdit.Value = (Decimal)sbc.MaxValue; startColorButton.BackColor = Color.FromArgb( sbc.StartColor.A, sbc.StartColor.R, sbc.StartColor.G, sbc.StartColor.B); endColorButton.BackColor = Color.FromArgb( sbc.EndColor.A, sbc.EndColor.R, sbc.EndColor.G, sbc.EndColor.B); } }