我的file.axml
中有布局的树形部分我想根据我的viewmodel中的属性显示/隐藏其中一些
我的属性是一个枚举器,我使用转换器根据枚举返回可见性。
Iam在核心中使用了“MvxVisibility”类型,但由于某种原因,android不了解返回类型(可见性)
这是我的android绑定:
MvxValueConverter<RedeemCodeState, MvxVisibility>
{
protected override MvxVisibility Convert(RedeemCodeState mark, Type targetType, object parameter, CultureInfo culture)
{
switch (mark)
{
case RedeemCodeState.RedeemCodeSubmit:
if (parameter.ToString() == "0")
return MvxVisibility.Visible;
return MvxVisibility.Collapsed;
case RedeemCodeState.AudiosSelection:
if (parameter.ToString() == "1")
return MvxVisibility.Visible;
return MvxVisibility.Collapsed;
case RedeemCodeState.Confirmation:
if (parameter.ToString() == "2")
return MvxVisibility.Visible;
return MvxVisibility.Collapsed;
default:
return MvxVisibility.Collapsed;
}
}
}
这是我的转换器(核心) 公共类RedeemStateToVisibilityConverter:
public partial class RedeemCodeViewModel
{
private RedeemCodeState _redeemCodeState = 0;
public RedeemCodeState RedeemCodeState
{
get { return _redeemCodeState; }
set
{
_redeemCodeState = value;
RaisePropertyChanged(() => RedeemCodeState);
}
}
public RedeemCodeViewModel(string code)
{
RedeemCode = code;
}
}
public enum RedeemCodeState
{
RedeemCodeSubmit = 0,
AudiosSelection = 1,
Confirmation = 2
}
这是我的ViewModel(核心):
var opp = document.querySelectorAll('a[class="F-reset"]');
我做错了什么?
答案 0 :(得分:1)
值转换器旨在将可移植值转换为特定于平台的值。 MvxVisibility 是便携式的。
您需要将Visibility插件添加到Core和Droid项目中。您可以在绑定中调用多个值转换器。
local:MvxBind="Visibility Visibility(RedeemStateToVisibility(RedeemCodeState, 0))"
注意:我正在使用西藏绑定语法
这会调用您的值转换器将您的代码状态转换为MvxVisibility值。我们最终调用Visibility值转换器将其转换为Android可见性值。