Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 重新输入后,MvvmCross MvxSpinner不会更新_Xamarin_Mvvmcross - Fatal编程技术网

Xamarin 重新输入后,MvvmCross MvxSpinner不会更新

Xamarin 重新输入后,MvvmCross MvxSpinner不会更新,xamarin,mvvmcross,Xamarin,Mvvmcross,已解决 求你了,我需要帮助 安卓情况: MSVisualStudio 2015+Xamarin+Mvvmcross 4.4 一个活动和几个片段。使用默认演示者 1-使用MvxRecyclerView查看(片段),选择一行进行编辑 2-使用MvxSpinner显示新视图(片段),并将其值(a)更改为另一个值(B)。记住:A&B是对象 <Mvx.MvxSpinner android:id="@+id/spinner_academic_start_week" android:la

已解决

求你了,我需要帮助

安卓情况:

MSVisualStudio 2015+Xamarin+Mvvmcross 4.4

一个活动和几个片段。使用默认演示者

1-使用MvxRecyclerView查看(片段),选择一行进行编辑

2-使用MvxSpinner显示新视图(片段),并将其值(a)更改为另一个值(B)。记住:A&B是对象

<Mvx.MvxSpinner
    android:id="@+id/spinner_academic_start_week"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    local:MvxDropDownItemTemplate="@layout/spinner_basic"
    local:MvxItemTemplate="@layout/item_spinner_basic"
    local:MvxBind="ItemsSource AcademicYearWeeksCollection; SelectedItem AcademicStartWeek; HandleItemSelected SelectAcademicStartWeekCommand" />
并使用

Close(this)
我会非常棒的


谢谢。

当您使用
MvxFragment
属性创建片段时,默认情况下
IsCacheableFragment
设置为true。因此,当片段和it ViewModel被缓存时,您将获得第二次返回页面时所经历的行为

理想情况下,您应该能够将
IsCacheableFragment
设置为false

[MvxFragment(typeof(MainViewModel), Resource.Id.content_frame,
    IsCacheableFragment = false)]
不过,我相信这项功能的表现并不理想。根据它将ViewModel设置为null

您可以尝试另一种方法,强制片段和视图模型对刷新自己。在片段中,父活动覆盖
ShowFragment
,并将带有微调器的ViewModel的
forceAddToBackStack
设置为true

protected override void ShowFragment(string tag, int contentId, Bundle bundle, bool forceAddToBackStack = false, bool forceReplaceFragment = false)
{
    if (tag.Equals(typeof(<<Your View Model Type>>).FullName))
        forceReplaceFragment = true;

    base.ShowFragment(tag, contentId, bundle, forceAddToBackStack, forceReplaceFragment);
}
protected override void ShowFragment(字符串标记,int contentId,Bundle Bundle,bool-forceAddToBackStack=false,bool-forceReplaceFragment=false)
{
if(tag.Equals(typeof().FullName))
forceReplaceFragment=true;
ShowFragment(标记、contentId、bundle、forceAddToBackStack、forceReplaceFragment);
}

当你说“显示新视图”时,这是一个新片段、活动还是其他类型的视图?您是说当使用微调器返回页面时,会记住上一个选择的状态,并且您希望它是刷新重置页面吗?取消流程是如何工作的?
Close(this)
[MvxFragment(typeof(MainViewModel), Resource.Id.content_frame,
    IsCacheableFragment = false)]
protected override void ShowFragment(string tag, int contentId, Bundle bundle, bool forceAddToBackStack = false, bool forceReplaceFragment = false)
{
    if (tag.Equals(typeof(<<Your View Model Type>>).FullName))
        forceReplaceFragment = true;

    base.ShowFragment(tag, contentId, bundle, forceAddToBackStack, forceReplaceFragment);
}