我的 WPF 项目有 19 个单选按钮。我想设置每个命令属性。为了分隔所有命令操作,我想将RadioButton Content属性作为 CommandParameter 发送。
我尝试为 CommandParameter 属性定义 setter,并设置{Binding Path=Content}
Value,如下所示。
但这不是工作。
<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"/>
在 WPF 中,您可以将控件的 Content 属性作为 CommandParameter 传递,方法是将其绑定到您正在使用的命令的 CommandParameter 属性。
下面是使用 Button 控件的示例:
在这个例子中:
MyCommand 是您在 ViewModel 中定义的命令。CommandParameter 设置为 Button 的 Content 属性。relativeSource={RelativeSource Self} 指定您要绑定到当前控件(在本例中为 Button)的 Content 属性。确保您的 ViewModel 具有接收此 CommandParameter 的属性。
请记住,CommandParameter 是您传递给 ViewModel 中的命令方法的附加参数。根据您正在使用的控件和 ViewModel 的结构相应地调整绑定。