如何MvvmCross将drawableId绑定到Imageview

时间:2015-08-24 02:09:06

标签: android xamarin xamarin.android mvvmcross

如何在转换器中返回DrawableId

我的布局文件:

<ImageView
    android:id="@+id/imgTest"
    android:src="@drawable/Img_Test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"    
    android:maxHeight="80dp"
    android:maxWidth="80dp"   
    android:layout_margin="20dp"   
    android:scaleType="fitCenter"
    local:MvxBind ="DrawableId MySwapImage(true)" />

我在资源文件夹中有两个图像

  1. ImgTest1.png
  2. ImgTest2.png
  3. 我的价值转换器:

    public class MySwapImageValueConverter : MvxValueConverter<bool, int>
    {
        protected override int Convert(bool value, Type targetType, object parameter, CultureInfo culture)
        {
            if(value)
            {
                // ImgTest1
            }
            else
            {
                // ImgTest2
            }
        }
    }
    

1 个答案:

答案 0 :(得分:3)

您的问题是这个case 'gallery': $a_div_st = '<div id="'; $cat_name = $category->name; $a_div_st_e = '" class="container-fluid">'; $a_div_end = '</div>'; $g_args = array( 'category_name' => 'gallery', 'post_type' => 'post', 'orderby' => 'date', 'order' => 'ASC', ); $gallery = new WP_Query($g_args); if($gallery->have_posts()){ echo $a_div_st.$cat_name.$a_div_st_e; while($gallery->have_posts()){ $gallery->the_post(); echo '<h1>'; the_title(); echo '</h2>'; the_content(); } wp_reset_postdata(); echo $a_div_end; } break; 不应该在您的Converter项目中(您的虚拟机所在的项目)。此代码是特定于平台的,因为它将布尔值(与业务逻辑相关的内容)更改为Drawable(仅在Android上存在的内容)。因此,它应属于您的.Core项目。

在我的项目中,我在Droid项目中创建了一个.Droid文件夹来存储我所有特定于平台的转换器。您Converters的代码应如下所示

MySwapImageValueConverter