#c# #wpf
#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 для моего пользовательского элемента управления.
Когда я запускаю свое приложение, мой флажок по умолчанию установлен, и все четыре пользовательских элемента управления работают нормально.
Я имею в виду, что если я перемещу элемент управления ползунком из user control1, это вообще не повлияет на другой пользовательский элемент управления.
Предположим, я переместил свой элемент управления ползунком следующим образом :
пользовательский элемент управления 1 —-> элемент управления ползунком имеет значение 20
пользовательский элемент управления 2 —-> элемент управления ползунком имеет значение 40
пользовательский элемент управления 3 —-> элемент управления ползунком имеет значение 60
пользовательский элемент управления 4 —-> элемент управления ползунком имеет значение 80
Как только я сниму флажок, тогда user control1 и user control3 будут иметь одинаковое значение, например, 20, а user control2 и user control4 будут иметь одинаковое значение, например, 40.
Что неверно . Я хочу, чтобы никакой пользовательский элемент управления не влиял ни на одно значение пользовательского элемента управления, когда я снимаю флажок с флажка.
установите и снимите флажок, используемый только для переключения режима из реального режима в режим установки.
Смотрите описание ниже:
- Для объекта obj у меня есть два индекса 0, 1, и для каждого индекса у меня есть один объект пользовательского элемента управления, например, для индекса 0 с объектом obj new ChannelRSUserControl(obj, 0) и таким же образом для индекса 1 с объектом obj new ChannelRSUserControl(obj, 1)
точно так же для объекта 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 — это свойство, которое я привязываю к элементу управления ползунком, а элемент управления ползунком привязан к текстовому полю.
Надеюсь, теперь мне все ясно. Пожалуйста, ответьте, чтобы я мог решить эту проблему.
Комментарии:
1. Ваш вопрос неясен. Какое действие вы выполняете, когда устанавливаете / снимаете флажок??
2. не могли бы вы опубликовать пример рабочего кода, чтобы мы могли быстро ответить вам. похоже, в вашем описании отсутствует много битов.
3. Вы пытаетесь использовать WPF, как если бы это были Windows Forms… это далеко от Windows Forms, поэтому ваш код далек от оптимального. Вам нужно научиться использовать XAML.