MVVM:在运行时更改按钮内容和命令绑定

时间:2018-02-13 10:27:44

标签: wpf mvvm commandbinding

我有一个按钮,应该用作Connect或Disconnect按钮,具体取决于ViewModel的Connected属性:

<Button Content="_Connect" x:Name="connectButton" Command="{Binding ConnectCommand}"/>

现在取决于属性,内容应该是&#34; _Connect&#34;或&#34; _Disconnect&#34;并且命令绑定应该是ConnectCommand或DisconnectCommand。

有没有一种很好的方法可以做到这一点,还是应该为两者使用命令,并让DataTrigger根据Connected属性分别设置内容?

非常感谢!

2 个答案:

答案 0 :(得分:0)

使用相同的命令可以使用枚举处理它。

   <Button Name="btnOption"
        Grid.Row="0"
        Grid.RowSpan="3"
        Grid.Column="8"
        Command="{Binding RxOptionCommand}"
        Content="{Binding RxOptionContent}" />

根据您的View Model的连接或断开连接,更改按钮内容,同时将您的枚举值设置为变量。

 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
                }           
        }

答案 1 :(得分:0)

确实非常简单:

正如Clemens建议的那样,我最终使用DataTrigger设置了Binding和Contents。