重要注意事项:它过去在MVVM交叉V3.5上工作,但升级到V6.4.2之后就停止工作了.
在广泛使用MVVM的项目中,存在自定义textview。
<custom.HeaderTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/marg_top"
android:layout_marginBottom="@dimen/marg_top"
android:gravity="center"
local:MvxBind="Text SearchCriteria"
android:layout_gravity="center_horizontal"
android:textAllCaps="true" />local:MvxBind="Text SearchCriteria"指向视图模型,它确实返回文本:
public string SearchCriteria => Resource.SearchCriteria;
该字符串存在于资源中:
public static string SearchCriteria {
get {
return ResourceManager.GetString("SearchCriteria", resourceCulture);
}
}由于某些原因,运行时它总是显示在屏幕上为空白。如果我用标准的android字段替换textfield,并使用标准赋值,文本就会显示出来。
android:text="@string/test_string"
所以我知道textfield在那里,它在屏幕上,没有任何东西阻挡它,只是由于某种原因,文本值没有被设置或呈现(不确定是哪一个)。你能告诉我这个问题可能是什么吗?如果需要更多的信息,请直接问。谢谢。
更新
我为绑定值向setter/getter添加了断点:
public string SearchCriteria
{
get => searchCriteria; // Does not get called
set => SetProperty(ref searchCriteria, value); // Is called with an actual value
}只有设置者触发(具有值),而getter从不触发。
对于进一步的上下文,我们尝试使用文本getter在视图中的一个按钮上直接设置文本,它可以工作。因此,XML绑定中存在一些我们不理解的问题。
Button = view.FindViewById<Button>(Resource.Id.Button);
Button.Text = ViewModel.SearchCriteria我们还确保了解释性绑定了视图模型和视图:
ClaimsHistorySearchViewFragment_ : MvxFragment<ClaimsHistorySearchViewModel>更新我们发现了视图模型的更多问题。当我们将一个值分配给ProptertyChange并修改了PropertyChanged没有触发的值时:
public override void OnViewCreated(View view, Bundle savedInstanceState)
{
base.OnViewCreated(view, savedInstanceState);
ViewModel.PropertyChanged += _model_PropertyChanged;
ViewModel.ErrorCode = 0; // _model_PropertyChanged Does NOT fire
}注意到,当我们使用fluent mvvm交叉绑定时,绑定是有效的,而当我们使用localmvx绑定时,绑定不起作用。
发布于 2020-04-18 15:11:00
我的进口里有个地方
xmlns:local="http://schemas.android.com/apk/res-auto
一旦我把它移开,它就修好了。
发布于 2020-03-31 14:47:46
如果要从TextView继承,可以尝试使用与TextView使用的相同的目标绑定在您的Setup > FillTargetFactories上注册绑定:
registry.RegisterCustomBindingFactory<HeaderTextView>(
"Text",
textView => new MvxTextViewTextTargetBinding(textView));HIH
https://stackoverflow.com/questions/60938057
复制相似问题