Example #1
0
        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;
                bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                cdp.Refresh();

                ComposingConverter conv = new ComposingConverter();
                if (checkBox1.Checked)
                {
                    RangeConverter rc = new RangeConverter();
                    rc.Min = Decimal.ToDouble(minEdit.Value);
                    rc.Max = Decimal.ToDouble(maxEdit.Value);
                    conv.Converters.Add(rc);
                }

                conv.Converters.Add(new Kent.Boogaart.Converters.TypeConverter(cdp.Channel.Type, Property.PropertyType));
                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());
            }
        }
Example #2
0
        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);

                ComposingConverter conv = bind.Converter as ComposingConverter;
                foreach (IValueConverter converter in conv.Converters)
                {
                    if (converter is RangeConverter)
                    {
                        checkBox1.Checked = true;
                        RangeConverter rc = converter as RangeConverter;
                        minEdit.Value = (Decimal)rc.Min;
                        maxEdit.Value = (Decimal)rc.Max;
                    }
                }
            }
        }