推送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" />
答案 0 :(得分:4)
将按钮的背景颜色绑定到ViewModel上的画笔属性。然后,让ICommand更改视图模型上画笔的颜色。有些人可能还建议将颜色绑定到ViewModel上的IsMuted属性,然后使用转换器将true / false转换为画笔。此方法从ViewModel中删除任何UI特定的详细信息。
答案 1 :(得分:0)
@Quanta代码隐藏可能包含实现视觉行为的UI逻辑代码,因此更改viewModel上画笔的颜色是针对mvvm模式的。
视图定义和处理UI视觉行为,例如动画或 可能由视图中的状态更改触发的转换 模型或通过用户与UI的交互。 支持我的话:http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx