我正在尝试使用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 calss位于
之下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中的数据,以便它显示在我的选项卡中,非常感谢
答案 0 :(得分:0)
我有一种感觉这可能是我几周前修复的错误。
错误是用于存储这些子视图模型的缓存开始在0处开始索引 - 并且0也被Android Intent视为空值。
在vnext中,请参阅此检查https://github.com/slodge/MvvmCross/commit/bcebadffee3850857d6a73070704e72b3aa72bcb
在掌握中,请参阅https://github.com/slodge/MvvmCross/commit/c3171e27168bf2b7e48dd73d105f5a08870cec5a