Как использовать разные значения на двух динамически сгенерированных комбинированныхC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как использовать разные значения на двух динамически сгенерированных комбинированных

Сообщение Anonymous »

Я разработчик C ++ и недавно начал работать над WPF. Я сожалею о странном названии, так как я не был уверен, что положить. В моем приложении мне нужно динамически генерировать два группы Groupbox, которые содержат кнопки, метки, текстовое поле, Combobox и так далее. И как только это будет сделано, мне нужно выполнить некоторую операцию на этих элементах управления. У меня также есть два класса ViewModel и модельный класс. Что ж, позвольте мне показать вам, как я это сделал:
pcmgenview.xaml pcmgenwidgetview.xaml: pcmgenwidgetview.xaml.cs:

Код: Выделить всё

public partial class PCMGenWidgetView : UserControl
{
PCMGenWidgetViewModel mPCMGenWidgetViewModel = new PCMGenWidgetViewModel();

public PCMGenWidgetView()
{
InitializeComponent();
this.DataContext = mPCMGenWidgetViewModel;
}
}
pcmgenviewmodel:

Код: Выделить всё

public ObservableCollection PGenWidgets { get; set; }

public PCMGenViewModel()
{
PGenWidgets = new ObservableCollection();
PGenWidgets.Add(new PCMGenWidgetViewModel { Description = "PCM Generator 1", ID = 0 });
PGenWidgets.Add(new PCMGenWidgetViewModel { Description = "PCM Generator 2", ID = 1 });
}
pcmgenwidgetviewmodel:

Код: Выделить всё

private string _description;

public string Description
{
get
{
return _description;
}

set
{
_description = value;
OnPropertyChanged("Description");
}
}

public ObservableCollection PreScalerList
{
get { return _PreScalerList; }
set
{
_PreScalerList = value;
OnPropertyChanged("PreScalerList");
}
}

private string _selectedPreScalerList;

public string SelectedPreScalerList
{
get { return _selectedPreScalerList; }
set
{
_selectedPreScalerList = value;
int Listvalue = PreScalerList.IndexOf(_selectedPreScalerList);
int ListFinalVal = Listvalue + 1;
SelectedPreScaler(ListFinalVal);
OnPropertyChanged("SelectedPreScalerList");
}
}

private int _ID;
public int ID
{
get
{
return _ID;
}

set
{
_ID = value;
OnPropertyChanged("ID");
}
}

public void SelectedPreScaler(int Select)
{
int bitMask;
bitMask = (0 == ID) ? 0xCF : 0x3F; // ID always shows 0
m_controlRegs[0] &= Convert.ToByte(bitMask);
//m_refClock[0] = Convert.ToByte(18432000 * 2);
}
Теперь это дает мне два группы Groupbox для запуска :) В моем Combobox у меня есть, B, C, D в качестве элементов. Посмотрите на связывание ComboBox о том, как я могу получить выбранное значение из ComboBox. Здесь я хочу выполнить одну и ту же операцию на всех этих элементах управления, но разных значений. Ну, я хочу сказать что-то подобное, что я сделал в своем приложении C ++: < /p>

Код: Выделить всё

for(i = 0;  i < 2; i++) // Constructor: Here 2 is used because we have two groupboxes
{
m_pcmGenPrescaler[i] = new ComboBox(String::empty);
m_pcmGenPrescaler[i]->addItem(String(T("div 1")), 1);
m_pcmGenPrescaler[i]->addItem(String(T("div 15")), 2);
m_pcmGenPrescaler[i]->addItem(String(T("div 255")), 3);
m_pcmGenPrescaler[i]->addItem(String(T("div 65535")), 4);
m_pcmGenPrescaler[i]->setEditableText(false);
m_pcmGenPrescaler[i]->setSelectedId(1, true);
m_pcmGenPrescaler[i]->addListener(this);
addAndMakeVisible(m_pcmGenPrescaler[i]);
}

for(i = 0;  i < 2; i++) // Here 2 is used because we have 2 groupboxes
{
if(m_pcmGenPrescaler[i] == comboBox) // PreScaler Combobox
{
unsigned char bitMask = (0 == i) ? 0xCF : 0x3F; Takes the value of i
m_controlRegs[0] &= bitMask;
m_refClock[i] = 18432000 * 2;
}
Если вы заметите выше, вы найдете для , создавая Combobox два раза, и на основе того, какое выбранное значение Combobox выбирается в i . То есть, если первый выбор ComboBox изменяется, то Unsigned char BitMask = (0 == i)? 0xcf: 0x3f; становится без знака char bitmask = (0 == 0)? 0xcf: 0x3f; , если второе, USIGNED Char Bitmask = (0 == 1)? 0xcf: 0x3f;
Как я могу узнать, какой Combobox я использовал? Использовал ли я PCM Gen 1 Combo или PCM Gen 2 Combo? Это сложная ситуация для меня.

Подробнее здесь: https://stackoverflow.com/questions/129 ... comboboxes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»