我是一名 C++ 开发人员,最近转向 C#。我在我的 wpf 应用程序中使用 MVVM 模式。我正在研究单选按钮的动态生成。好吧,这个要求很简单,我需要生成 24 个单选按钮,这样一次只检查一个单选按钮。这是代码:
XAML:
<Grid Grid.Row="1">
<GroupBox Header="Daughter Cards" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="220" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<RadioButton Content="{Binding SlotButtons}" Name="SLotButtons" />
</Grid>
</Grid>
</GroupBox>
</Grid>
Grid.Column="0"
如上所述,我想生成 24 个单选按钮。
视图模型:
// Description of SlotButtons
private string _SlotButtons;
public string SlotButtons
{
get
{
return _SlotButtons;
}
set
{
_SlotButtons = value;
OnPropertyChanged("SlotButtons");
}
}
//For RadioButton Click
private ICommand mSlotCommand;
public ICommand SlotCommand
{
get
{
if (mSlotCommand == null)
mSlotCommand = new DelegateCommand(new Action(mSlotCommandExecuted), new Func<bool>(mSlotCommandCanExecute));
return mSlotCommand;
}
set
{
mSlotCommand = value;
}
}
public bool mSlotCommandCanExecute()
{
return true;
}
public void mSlotCommandExecuted()
{
// Logic to implement on a specific radiobutton click using Index
}
我在我的 C++ 应用程序中这样做了,如下所示:
for(slot = 0; slot < 24; slot++)
{
m_slotButton[slot] = new ToggleButton(String(int(slot)) + String(": None"));
m_slotButton[slot]->addButtonListener(this); // make this panel grab the button press
addAndMakeVisible(m_slotButton[slot]);
}
现在这就是我想要实现的目标:
- 生成 24 个 RadioButtons,内容来自
Content = 0: None
till23: None
。 - 单选按钮的生成方式应该是,我们将行分成 3 列,并在每列垂直添加 8 个单选按钮。
- 在任何时候,必须只选中一个单选按钮,不得选中其他单选按钮。必须只有一个单击命令可以在相应索引的帮助下处理所有按钮。
请帮忙 :)