我有以下代码,它将显示imageView的正常图像:
<ImageView
android:id="@+id/ImgNews"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="3dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/IconNews" />
代码背后:
imgNews.Click += (s, e) => {
var intent = new Intent(Activity, typeof(NewsDetailActivity));
intent.PutExtra("newsId", _newsId);
StartActivity(intent);
};
如果没有可用于此ImageView的服务,如何执行以下操作或在MvvmCross中实现它:
1)更改ImageView的灰色图像(使用IconNews_Grey
)
2)禁用单击事件
答案 0 :(得分:0)
由于您正在使用MVVMCross,因此您应该使用MVVM模式。这意味着使用ViewModel并绑定您的值,而不是在后面的代码上设置click处理程序。
使用这些概念后,您的问题的解决方案非常简单。您必须将点击功能转换为IMvxCommand
,创建一个控制您是否拥有&#34;服务的属性&#34;然后用它来控制命令的CanExecute
(更多信息here)
您的图像也可以这样做。您的财产必须返回需要显示的drawable:如果您有&#34; Service&#34;否则是灰色的。
您可以详细了解DataBinding和ViewModel如何工作here或观看N+1 Days of MVVM Cross