私はXamarinで新しく、私は最初のアプリケーションを作成しようとしています。このアプリは4つの独立したモジュールを持ち、以下の機能を最低限備えています: - レコードのリスト。 - 新しいレコードを作成するためのビュー。 - グローバルモジュール(プロファイルユーザー)への参照。MVVMCrossを使用してフラグメントをViewModelsに統合するには
要点は、WebでAppCompatActivity、Fragment、Toolbar、ActionBarなどを実装するチュートリアルがいくつか見つかりました。ここにはソースがあります:https://github.com/JoeRock11/Xamarin_DesignLibrary
この例では、3つのタブがあり、その中にフラグメントがあり、画面をスライドさせて現在のタブを変更できます(facebookに似ています)。私は自分のアプリのために同じことをしたい、各タブは1つのモジュールです。
サンプルは完全に動作しますが、私はMVVMCrossフレームワークを実装したいと思いますが、それを達成する方法はわかりません。
これは、フラグメントのサンプルです:
public class Fragment1 : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
RecyclerView recyclerView = inflater.Inflate(Resource.Layout.Fragment1, container, false) as RecyclerView;
SetUpRecyclerView(recyclerView);
return recyclerView;
}
private void SetUpRecyclerView(RecyclerView recyclerView)
{
var values = GetDataSource();
recyclerView.SetLayoutManager(new LinearLayoutManager(recyclerView.Context));
recyclerView.SetAdapter(new SimpleStringRecyclerViewAdapter(recyclerView.Context, values, Activity.Resources));
recyclerView.SetItemClickListener((rv, position, view) =>
{
//Tasks
});
}
}
これはMVVMCrossを実装していますが、活動(コアプロジェクト)で作業ViewModelにある:
public class AllPostsViewModel : MvxViewModel
{
public List<Post> AllPosts { get; set; }
public ICommand NavBack
{
get {return new MvxCommand(() => Close(this));}
}
public void Init()
{
Task<List<Bill>> result = Mvx.Resolve<Repository>().GetAllPosts();
result.Wait();
AllPosts = result.Result;
}
}
ビュー(アンドロイドプロジェクト)
[Activity(Label = "Posts", NoHistory = true)]
public class AllPostsView : MvxActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.View_AllBills);
}
}
今、私はコアとアンドロイドのプロジェクトを、アクティビティの代わりにフラグメントを使用するように変更したいと思います。
また、アクティビティではなく、この特定のケースでの使用フラグメントについてのご意見をお聞きしたいと思います。
「ViewModel.AccountsViewModel」とは何である、「『PostViewModel』は指定されたコンテキストで有効でないタイプであり、」私は私のViewModelを設定すると、私はエラーを取得します。これは私のViewModelの定義です: public class PostViewModel:MvxViewModel – isosa
私は、いくつかのタブの中にfragmentでrecyclerviewを表示する必要があります。この場合は動作しません。 – GvSharma