私はMvvmCross私のXamarin Androidプロジェクトで使用しています。私はMvxRecyclerView
のMvxActivity
を持っています。レイアウトファイルにアイテムテンプレートを割り当てました。MvvmCross Fluent APIを使用して、RecyclerViewアイテムのTextViewをAndroid上のViewModelのプロパティにバインドする方法はありますか?
public class MainViewModel : MvxViewModel
{
private IEnumerable<ViewModelItem> _viewModelItems;
public IEnumerable<ViewModelItem> ViewModelItems
{
get { return _viewModelItems; }
set { SetProperty(ref _viewModelItems, value); }
}
}
は、一般的に、私はMvvmCross流暢APIを使用するため、可能な限り好き:
<MvxRecyclerView
android:id="@+id/my_recycler_view"
local:MvxItemTemplate="@layout/item_recycler_view" />
のViewModelはそれだけでRecyclerView
に表示するデータを保持している一つの特性で構成され、非常に簡単です暗黙のリファクタリングサポートの だから私の活動で、私はこのようなMvxRecyclerView
のプロパティをバインドしています。これまでのところ
var recyclerView = View.FindViewById<MvxRecyclerView>(Resource.Id.my_recycler_view);
var set = this.CreateBindingSet<MainView, MainViewModel>();
set.Bind(recyclerView)
.For(v => v.ItemsSource)
.To(vm => vm.ViewModelItems);
set.Apply();
とても良いです。
<LinearLayout>
<TextView
android:id="@+id/innerText" />
</LinearLayout>
そして、私のViewModelItem
クラスには、次のようになります:さて、項目テンプレートのレイアウトファイルは、基本的にはTextView
が含まれてい
public class ViewModelItem
{
public string Title { get; set; }
}
私の質問今、どこでどのように私はTextView.Text
をバインドしますFluent APIを使用してプロパティのViewModelItem.Title
プロパティにアクセスしますか?
MvxBind
属性をアイテムテンプレートレイアウトファイルに指定すると、流暢なAPIがなくても非常に簡単ですが、私は実際には流暢なAPIソリューションを好むでしょう。
一つのことを、あなたは、クリックコマンドを経由割り当てることができますカスタム 'ViewHolder'に、そうでなければItemClickへのバインディングは何の影響も与えません。[this stackoverflow answer]の例(http://stackoverflow.com/questions/42938112/mvxrecyclerview-fluent-api-binding#answer-43055796)。 – Plac3Hold3r