如何更改imageView的图像并禁用ImgView单击事件

时间:2015-08-17 13:46:42

标签: android xamarin xamarin.android mvvmcross

我有以下代码,它将显示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)禁用单击事件

1 个答案:

答案 0 :(得分:0)

由于您正在使用MVVMCross,因此您应该使用MVVM模式。这意味着使用ViewModel并绑定您的值,而不是在后面的代码上设置click处理程序。

使用这些概念后,您的问题的解决方案非常简单。您必须将点击功能转换为IMvxCommand,创建一个控制您是否拥有&#34;服务的属性&#34;然后用它来控制命令的CanExecute(更多信息here

您的图像也可以这样做。您的财产必须返回需要显示的drawable:如果您有&#34; Service&#34;否则是灰色的。

您可以详细了解DataBinding和ViewModel如何工作here或观看N+1 Days of MVVM Cross