私は C++ 開発者で、最近 C# に移行しました。wpf アプリで MVVM パターンを使用しています。私はラジオボタンの動的生成に取り組んでいます。要件は非常にシンプルです。一度に 1 つのラジオボタンのみがチェックされるように、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]);
}
これが私が達成したいことです:
- Content = 0: Noneまでのコンテンツを含む 24 個の RadioButton を生成します- 23: None。
- ラジオボタンは、行を 3 列に分割し、各列に垂直方向に 8 つのラジオボタンを追加する方法で生成する必要があります。
- いつでも、1 つのラジオボタンのみをオンにする必要があり、他のボタンはオンにしないでください。それぞれのインデックスを使用してすべてのボタンを処理する 1 つのクリック コマンドのみが必要です。
助けてください :)