我有一个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的细节。