我有一个ICommand,当按下Button时会触发。发生这种情况时,我需要更改此Button的背景颜色。如何使用MVVM模式执行此操作?

private DelegateCommand asioMuted;

public ICommand AsioMuted
{
    get
    {
        if (asioMuted == null)
        {
            asioMuted = new DelegateCommand(MuteAsio);
        }

        return asioMuted;
    }
}

XAML:
<Button Content="Mute"
        Command="{Binding AsioMuted}"
        HorizontalAlignment="Left"
        Margin="29,282,0,0"
        VerticalAlignment="Top"
        Width="42"
        RenderTransformOrigin="-0.273,1.818" />

最佳答案

将按钮的背景色绑定(bind)到ViewModel上的brush属性。然后,让ICommand更改 View 模型上画笔的颜色。有些人可能还会建议将颜色绑定(bind)到ViewModel的IsMuted属性,然后使用转换器将true/false转换为画笔。此方法从ViewModel中删除所有特定于UI的细节。

09-25 19:29