我尝试使用Visibility插件和FieldBinding插件,但没有成功。
模型端:
/// <summary>
/// Gets or sets the birthdate.
/// </summary>
/// <value>
/// The birthdate.
/// </value>
public DateTime? Birthdate { get; set; }
ViewModel 方面:
public class DisplayUserViewModel : BaseUserViewModel
{
/// <summary>
/// The user
/// </summary>
public readonly INC<User> User = new NC<User>();
}
视图方面,首次尝试:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/ListIconTwoLineTileHeight"
android:paddingRight="@dimen/ListIconTwoLineTextMarginRight"
local:MvxBind="Visibility User.Birthdate, Converter=Visibility">
第二次尝试:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/ListIconTwoLineTileHeight"
android:paddingRight="@dimen/ListIconTwoLineTextMarginRight"
local:MvxBind="Visibility Visibility(User.Birthdate)">
但是结果相同:
MvxBind ( 2574): 33.60 Failed to create target binding for binding Visibility for MvxValueConverterValueCombiner combiner-operation
我只是以生日为例,但所有可见性绑定都失败了(对于每个绑定,我有 x 个错误消息)。
编辑1 其他绑定有效,我绑定了一大堆文本,所有内容都显示正常:
<TextView
style="@style/TextView.ListWithIcon.Single"
android:layout_marginTop="@dimen/ListIconTwoLineTextMarginTop"
local:MvxBind="Text User.FirstName" />
我也尝试绑定到一个INPC属性,结果相同。
编辑 2 正如stuart所建议的,我尝试了以下内容:
<TextView
style="@style/TextView.ListWithIcon.Single"
android:layout_marginTop="@dimen/ListIconTwoLineTextMarginTop"
android:layout_marginLeft="@dimen/ListIconTextMarginLeft"
local:MvxBind="Text Visibility(User.Birthdate)">
如果Birthdate为空,那么TextView上的可见性转换器似乎起作用:
Birthdate: Gone
但它似乎不绑定到可见性属性:
<TextView
style="@style/TextView.ListWithIcon.SecondLine"
android:layout_below="@+id/Birthday"
local:MvxBind="Visibility Visibility(User.Birthdate)"
android:text="Whatever birthdate" />
当Visibility(User.Birthdate)返回Gone时,显示“无论出生日期如何”...
编辑3
如果使用Visible伪属性,一切都按预期工作。
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/ListIconTwoLineTileHeight"
android:paddingRight="@dimen/ListIconTwoLineTextMarginRight"
local:MvxBind="Visible User.Birthdate">
<TextView style =“@style/TextView.ListWithIcon.Single”android:layout_marginTop =“@dimen/ListIconTwoLineTextMarginTop”local:MvxBind =“Text Visibility(User.Birthdate)”/>
,然后local:MvxBind =“Text User.Birthdate”
,那么这可能会给您一些线索 - 是INC、Visibilty、DateTime?还是其他什么问题... - StuartmvxBind="Visible User.Birthdate"
的绑定,它是否有效? - Stuart