1

Cirious 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 でインデックス作成を開始していたことであり、Android インテントによって 0 も空の値として扱われていました。


vnext で、このチェックインを参照してください https://github.com/slodge/MvvmCross/commit/bcebadffee3850857d6a73070704e72b3aa72bcb

マスターでは、https://github.com/slodge/MvvmCross/commit/c3171e27168bf2b7e48dd73d105f5a08870cec5aを参照してください。

于 2012-12-11T13:13:03.177 に答える