Tim*_*ews 5 xamarin.android mvvmcross
我正在使用MvvmCross 3.0.14和Xamarin.Android.
我有一个MvxImageView,如果我使用android:src直接指定图像(没有绑定),我可以显示一个特定的本地图形资源:
<Mvx.MvxImageView
android:layout_width="100dp"
android:layout_height="75dip"
android:layout_weight="1"
android:src="@drawable/Card_kh"/>
Run Code Online (Sandbox Code Playgroud)
但我无法使用local显示相同的图像:MvxBind:
<Mvx.MvxImageView
android:layout_width="100dp"
android:layout_height="75dip"
android:layout_weight="1"
local:MvxBind="ImageUrl 'res:Card_kh'"/>
Run Code Online (Sandbox Code Playgroud)
这不起作用.MvxAndroidLocalFileImageLoader.LoadResourceBitmap记录一条跟踪消息,指示'Card_kh'不是已知的可绘制名称.令人鼓舞的是它达到了这么远 - 至少我知道这些信息的预期消费者确实得到了它.但显然我没有以正确的格式提供这些信息.
更进一步,我的目标是让我的ViewModel确定应该使用哪种资源,例如
class MyViewModel : MvxViewModel
{
public string SomeImagePath { get { return "res:Card_kh"; } }
}
Run Code Online (Sandbox Code Playgroud)
和
<Mvx.MvxImageView
android:layout_width="100dp"
android:layout_height="75dip"
android:layout_weight="1"
local:MvxBind="ImageUrl SomeImagePath"/>
Run Code Online (Sandbox Code Playgroud)
如何将MvxImageView绑定到视图模型确定的本地资源图像,我需要做什么?
问题只是资源名称中的大写.虽然图像文件名以大写字母C开头,而android:src属性使用大写字母C,但ImageUrl的MvxBind需要小写c:
<Mvx.MvxImageView
android:layout_width="100dp"
android:layout_height="75dip"
android:layout_weight="1"
local:MvxBind="ImageUrl 'res:card_kh'"/>
Run Code Online (Sandbox Code Playgroud)
当ImageUrl值的源是viewmodel属性时,这也解决了这个问题:
class MyViewModel : MvxViewModel
{
public string SomeImagePath { get { return "res:card_kh"; } }
}
Run Code Online (Sandbox Code Playgroud)
和
<Mvx.MvxImageView
android:layout_width="100dp"
android:layout_height="75dip"
android:layout_weight="1"
local:MvxBind="ImageUrl SomeImagePath"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4286 次 |
最近记录: |