我有一个使用XAML和C#(MVVM)的应用程序来创建一个允许您启动和停止摄像头源的界面。
我想要做的是根据变量IsOn
在OFF和ON图像之间切换。
我知道如何在手动操作系统中设置图像
<Image Source="/MyApp.WpfUI;component/Resources/Images/Webcasting.png" />
但我不确定如何根据条件动态更改图像。我考虑过IF语句,但我不确定如何去做。
有没有人有任何建议或想法?
答案 0 :(得分:2)
答案是: 将显示流的控件的IsEnabled属性绑定到代码中返回布尔值的属性 在您的视图中
<Image IsEnabled={Binding IsOn} Source="/MyApp.WpfUI;component/Resources/Images/Webcasting.png" />
在此属性的 getter 中,输入条件语句以确定是否返回true或false。 在您的ViewModel中:
public bool IsOn
{
get
{
if(<some condition>)
return true;
else
return false;
}
}
备注:
答案 1 :(得分:1)
这里有两种选择。您可以使用问题中提到的if语句手动执行此操作,也可以创建DataTrigger
&amp;将其分配给您的控件ControlTemplate
。
DataTriggers允许您在特定数据对象的值与您在XAML中指定的某些条件匹配时设置属性值。我建议阅读DataTriggers上的MSDN documentation,了解这些工作原理的基本示例。