Eu tenho um projeto WPF que possui 19 botões de opção. Quero definir a propriedade Command de cada um deles. Para separar todas as ações de comando, quero enviar a propriedade RadioButton Content como um CommandParameter.
Tento definir o setter para a propriedade CommandParameter e defini {Binding Path=Content}
para Value como você pode ver abaixo.
Mas não é trabalho.
<Style TargetType="RadioButton">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Command" Value="{Binding SelectionChangedCommand}"/>
<Setter Property="CommandParameter" Value="{Binding Path=Content}"/>
</Style>
<RadioButton Content="Area"/>
<RadioButton Content="Unit"
Grid.Row="1"/>
<RadioButton Content="Transom Count"
Grid.Row="2"
CommandParameter="Transom Count"/>
<RadioButton Content="Mullion Count"
Grid.Row="3"/>
<RadioButton Content="Transom And Mulliom Count"
Grid.Row="4"/>
<RadioButton Content="Frame Count"
Grid.Row="5"/>
<RadioButton Content="Frame + Transom + Mullion Count"
Grid.Row="6"/>
<RadioButton Content="Corner Points"
Grid.Row="7"/>
<RadioButton Content="T Connections"
Grid.Row="8"/>
<RadioButton Content="Left"
Grid.Column="1"/>
<RadioButton Content="Right"
Grid.Column="1"
Grid.Row="1"/>
<RadioButton Content="Top"
Grid.Column="1"
Grid.Row="2"/>
<RadioButton Content="Bottom"
Grid.Column="1"
Grid.Row="3"/>
<RadioButton Content="Perimeter"
Grid.Column="1"
Grid.Row="4"/>
<RadioButton Content="Transom Length"
Grid.Column="1"
Grid.Row="5"/>
<RadioButton Content="Mullion Length"
Grid.Column="1"
Grid.Row="6"/>
<RadioButton Content="Transom + Mullion Length"
Grid.Column="1"
Grid.Row="7"/>
<RadioButton Content="Perimeter + Transom + Mullion Length"
Grid.Column="1"
Grid.Row="8"/>
No WPF, você pode passar a propriedade Content de um controle como CommandParameter vinculando-a à propriedade CommandParameter do comando que você está usando.
Aqui está um exemplo usando um controle Button:
Neste exemplo:
MyCommand é o comando que você definiu em seu ViewModel. CommandParameter é definido como a propriedade Content do botão. RelativeSource={RelativeSource Self} especifica que você está vinculando à propriedade Content do controle atual (Button neste caso). Certifique-se de que seu ViewModel possua uma propriedade para receber este CommandParameter.
Lembre-se de que CommandParameter é o parâmetro adicional que você passa para seu método de comando no ViewModel. Ajuste as ligações de acordo com o controle que você está usando e a estrutura do seu ViewModel.