void Child_Drop(object sender, System.Windows.DragEventArgs e) { var content = new System.Windows.Controls.ContentControl(); var bind = new System.Windows.Data.Binding(); var cdp = new ChannelDataProvider { ChannelName = (string)e.Data.GetData(typeof(string)), IsBindInDesign = true }; //cdp.ChannelName = node.Tag + "." + node.Text; bind.Source = cdp; System.Windows.Data.BindingOperations.SetBinding(content, System.Windows.Controls.ContentControl.ContentProperty, bind); //TODO:need to solve problem with drag mouse capturing // System.Windows.Point p=System.Windows.Input.Mouse.GetPosition(Schema.MainCanvas); System.Windows.Controls.Canvas.SetLeft(content, 0); System.Windows.Controls.Canvas.SetTop(content, 0); content.Width = 60; content.Height = 50; if (MainPanel.Resources[typeof(BaseChannel)] == null) { var dt = ((DataTemplate)XamlReader.Load(new XmlTextReader(new StringReader(StringResources.ChannelDefaultTemplate)))); dt.DataType = typeof(BaseChannel); var dk = new DataTemplateKey(typeof(BaseChannel)); MainPanel.Resources[dk] = dt; } UndoBuff.AddCommand(new AddGraphicsObject(content)); }
public override System.Windows.Data.BindingBase Save() { if (channels.Count > 0) { System.Windows.Data.MultiBinding multiBind = new MultiBinding(); foreach (IChannel channel in channels) { 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(); bind.FallbackValue = "{" + cdp.ChannelName + "}"; bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; multiBind.Bindings.Add(bind); } multiBind.Converter = new Kent.Boogaart.Converters.FormatConverter(expressionEdit.Text); return(multiBind); } else { return(base.Save()); } }
public override System.Windows.Data.BindingBase Save() { if (channels.Count > 0) { System.Windows.Data.MultiBinding multiBind = new MultiBinding(); foreach (IChannel channel in channels) { 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.FallbackValue = 0; bind.Converter = new Kent.Boogaart.Converters.TypeConverter(typeof(Double), typeof(Double)); multiBind.Bindings.Add(bind); } multiBind.Mode = BindingMode.TwoWay; ScriptConverter ec = new ScriptConverter(expressionEdit.Text); multiBind.Converter = ec; DependencyObject depObj; DependencyProperty depProp; if (Property.GetWpfObjects(out depObj, out depProp)) { multiBind.FallbackValue = depObj.GetValue(depProp); } return(multiBind); } else { return(base.Save()); } }
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 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()); } }
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; } } } }
public override void Initialize(object element, PropertyWrapper property, System.Windows.Data.BindingBase binding) { base.Initialize(element, property, binding); DependencyObject depObj; DependencyProperty depProp; if (property.GetWpfObjects(out depObj, out depProp)) { if (depObj.GetValue(depProp) is String) { expressionEdit.Text = (string)depObj.GetValue(depProp); } } System.Windows.Data.MultiBinding bind = binding as System.Windows.Data.MultiBinding; if (bind != null) { expressionEdit.Text = (bind.Converter as ScriptConverter).Expression; channels.Clear(); foreach (System.Windows.Data.BindingBase bindingBase in bind.Bindings) { if (bindingBase is System.Windows.Data.Binding) { System.Windows.Data.Binding b = bindingBase as System.Windows.Data.Binding; if (b.Source is ChannelDataProvider) { ChannelDataProvider src = (ChannelDataProvider)b.Source; channels.Add(src.Channel); } } } FillChannelsGrid(); } }
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); } }