我有四个用户控件。我在主窗口中添加了这样的内容:
AbstractObject obj = ObjectFactory.CreateObject(Protocol.CP, 2);
AbstractObject obj1 = ObjectFactory.CreateObject(Protocol.CP, 2);
private List<ChannelRSUserControl> channelRsUserControl = new List<ChannelRSUserControl>();
this.channelRsUserControl.Add(new ChannelRSUserControl(obj, 0));-----> user control1
this.channelRsUserControl.Add(new ChannelRSUserControl(obj, 1));------> user control2
this.channelRsUserControl.Add(new ChannelRSUserControl(obj1, 0));------> user control3
this.channelRsUserControl.Add(new ChannelRSUserControl(obj1, 1)); ------> user control4
this.mainWindow.grid1_ChannelData.Children.Add(this.channelRsUserControl[0]);
this.mainWindow.grid2_ChannelData.Children.Add(this.channelRsUserControl[1]);
this.mainWindow.grid3_ChannelData.Children.Add(this.channelRsUserControl[2]);
this.mainWindow.grid4_ChannelData.Children.Add(this.channelRsUserControl[3]);
此用户控件具有文本框和滑块控件。和主窗口具有此用户控件和复选框。
如您所见,我为我的用户控件创建了两个对象obj和obj1。
当我启动我的应用程序时,默认选中我的复选框,并且所有四个用户控件都表现良好。
我的意思是如果我从用户控件1移动滑块控件,它根本不会影响其他用户控件。
假设我已经移动了我的滑块控件:
用户控件1 ----&gt;滑块控件的值为20
用户控件2 ----&gt;滑块控件的值为40
用户控件3 ----&gt;滑块控件的值为60
用户控件4 ----&gt;滑块控件的值为80
一旦取消选中复选框,则用户control1和用户control3具有相同的值,如20,用户control2和用户control4具有相同的值,如40。
哪个错了。在我取消选中复选框时,我想要的是没有用户控件会影响任何用户控件值。
选中并取消选中仅用于将模式从实模式更改为设置模式的复选框。
见以下说明:
对象obj1的方式也有索引0,1,每个索引都有用户控制对象。
选中复选框并取消选中,执行以下操作:
Binding rsBind = BindingOperations.GetBinding(this.control.sliderrs, Slider.ValueProperty);
Binding rsBindnew = new Binding("Rs");
rso2Bindnew.Path = rso2Bind.Path;
UpdateSourceTrigger value = UpdateSourceTrigger.PropertyChanged;
value = (e.OperatingMode == ModeOfOperation.REAL) ?
UpdateSourceTrigger.PropertyChanged : UpdateSourceTrigger.Explicit;
operatingMode = e.OperatingMode;
rso2Bindnew.UpdateSourceTrigger = value;
BindingOperations.SetBinding(this.control.sliderrs, Slider.ValueProperty, rsBindnew);
BindingOperations.SetBinding(this.control.tbrs, TextBox.TextProperty, rstbBind);
P.S:Rs是我绑定到滑块控件的属性,滑块控件绑定到文本框。
希望我现在非常清楚。请回复以便我可以解决这个问题。