取消选中影响wpf中用户控件值的复选框

时间:2014-06-24 05:33:18

标签: c# wpf

我有四个用户控件。我在主窗口中添加了这样的内容:

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。

哪个错了。在我取消选中复选框时,我想要的是没有用户控件会影响任何用户控件值。

选中并取消选中仅用于将模式从实模式更改为设置模式的复选框。

见以下说明:

  1. 对于对象obj,我有两个索引0,1,对于每个索引,我有一个用户控件对象 例如,索引0,对象obj为新的ChannelRSUserControl(obj,0),索引1的对应方式为obj,新的ChannelRSUserControl(obj,1)
  2. 对象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是我绑定到滑块控件的属性,滑块控件绑定到文本框。

    希望我现在非常清楚。请回复以便我可以解决这个问题。

0 个答案:

没有答案