1

我正在尝试使用 Cirrious Conference 示例创建一个选项卡式视图,但似乎在显示我的数据时遇到了问题。当在下面的代码中专门调用承载选项卡的视图时,就会出现问题

// Initialize a TabSpec for each tab and add it to the TabHost spec = TabHost.NewTabSpec("welcome"); spec.SetIndicator(this.GetText("Welcome"),Resources.GetDrawable(Resource.Drawable.Tab_Welcome)); spec.SetContent(CreateIntentFor(ViewModel.Welcome)); TabHost.AddTab(spec);

我的 ViewModel 课程如下

public class WelcomeViewModel : MvxViewModel
{
    private string _description;
    public string Description
    {
        get
        {
            return _description;
        }
        set
        {
            _description = value;
            FirePropertyChanged("Description");
        }
    }

    public WelcomeViewModel(string description)
    {
       Description = description;
    }

    public WelcomeViewModel()
    {

    }
}

ViewModel.Welcome 对象是使用传递给它的数据创建和初始化的,并且在控制传递 SetContent 方法之前一直如此,但是当调用 AddTab 时,WelcomeViewModel 构造函数似乎再次被调用并且数据被重置。调用堆栈将此跟踪到

base.OnCreate(bundle);

在 BaseTabbedView 类中调用。如何保留 WelcomeViewModel 中的数据,以便它显示在我的选项卡中,非常感谢

4

1 回答 1

0

我有一种感觉,这可能是我几周前修复的一个错误。

错误是用于存储这些子视图模型的缓存从 0 开始索引 - 并且 0 也被 Android Intent 视为空值。


在 vnext 中,请参阅此签入https://github.com/slodge/MvvmCross/commit/bcebadffee3850857d6a73070704e72b3aa72bcb

在master中,见https://github.com/slodge/MvvmCross/commit/c3171e27168bf2b7e48dd73d105f5a08870cec5a

于 2012-12-11T13:13:03.177 回答