MVVM:在运行时更改按钮内容和命令绑定
MVVM: Change button content and command binding at runtime
我有一个按钮应该用作连接或断开按钮,具体取决于 ViewModel 的已连接-属性:
<Button Content="_Connect" x:Name="connectButton" Command="{Binding ConnectCommand}"/>
现在,根据 属性,内容应该是“_Connect”或“_Disconnect”,命令绑定应该转到 ConnectCommand 或 DisconnectCommand。
有什么好的方法可以做到这一点,还是我应该对两者都使用一个命令并让 DataTrigger 根据已连接 属性 分别设置内容?
非常感谢!
使用相同的命令,您可以使用枚举处理此问题。
<Button Name="btnOption"
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="8"
Command="{Binding RxOptionCommand}"
Content="{Binding RxOptionContent}" />
根据您的视图模型的连接或断开业务更改按钮内容,同时将您的枚举值设置为变量。
public enum EnumRxRecStatus
{
None = 0,
New = 1,
}
现在您可以将条件检查到您的命令事件中
public void OnRxOptionCommand(object sender)
{
if (RequestForRxOption == EnumRxRecStatus.None)
{
// Do something
}
else if (RequestForRxOption == EnumRxRecStatus.New)
{
// Do something
}
}
确实很简单:
正如 Clemens 所建议的,我最终使用 DataTrigger 设置了绑定和内容。
我有一个按钮应该用作连接或断开按钮,具体取决于 ViewModel 的已连接-属性:
<Button Content="_Connect" x:Name="connectButton" Command="{Binding ConnectCommand}"/>
现在,根据 属性,内容应该是“_Connect”或“_Disconnect”,命令绑定应该转到 ConnectCommand 或 DisconnectCommand。
有什么好的方法可以做到这一点,还是我应该对两者都使用一个命令并让 DataTrigger 根据已连接 属性 分别设置内容?
非常感谢!
使用相同的命令,您可以使用枚举处理此问题。
<Button Name="btnOption"
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="8"
Command="{Binding RxOptionCommand}"
Content="{Binding RxOptionContent}" />
根据您的视图模型的连接或断开业务更改按钮内容,同时将您的枚举值设置为变量。
public enum EnumRxRecStatus
{
None = 0,
New = 1,
}
现在您可以将条件检查到您的命令事件中
public void OnRxOptionCommand(object sender)
{
if (RequestForRxOption == EnumRxRecStatus.None)
{
// Do something
}
else if (RequestForRxOption == EnumRxRecStatus.New)
{
// Do something
}
}
确实很简单:
正如 Clemens 所建议的,我最终使用 DataTrigger 设置了绑定和内容。