gpt4 book ai didi

android - 如何通过代码绑定(bind)到 MvxRecyclerView ItemsSource?

转载 作者:行者123 更新时间:2023-11-29 01:19:44 27 4
gpt4 key购买 nike

我在 fragment 中使用了 MvxRecyclerView:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/Headline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="My Headline" />
<MvvmCross.Droid.Support.V7.RecyclerView.MvxRecyclerView
android:id="@+id/RecyclerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/Headline"
android:layout_marginTop="50dp" />
</RelativeLayout>

这是 fragment 代码:

[MvxFragment(typeof(MainViewModel), Resource.Id.Main_ViewPager)]
[Register("my.app.fragments.MyFragment")]
public class MyFragment : BaseFragment<MyViewModel>
{
private MvxRecyclerView recyclerView;

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);

var view = this.BindingInflate(Resource.Layout.MyFragment, null);

this.recyclerView = view.FindViewById<MvxRecyclerView>(Resource.Id.RecyclerView);
this.recyclerView.ItemTemplateId = Resource.Layout.MyCell;

var set = this.CreateBindingSet<MyFragment, MyViewModel>();
set.Bind(this.recyclerView).For(x => x.ItemsSource).To(x => x.Items);
set.Apply();

return view;
}
}

还有 ViewModel:

public class MyViewModel : MvxViewModel
{
....

private ObservableCollection<T> items;
public ObservableCollection<T> Items
{
get { return this.items; }
set
{
this.items = value;
this.RaisePropertyChanged(() => this.Items);
}
}

....
}

问题是 MvxRecyclerView 不显示任何数据。但它确实如此,当我在 axml 中定义 ItemTemplateId 和 Binding 时(例如 local:MvxItemTemplate="...", local:MvxBind="ItemsSource Items")。

我的目标不是在 axml 中定义它。我想利用在代码中使用这些属性的优势(例如重命名或重构问题)。

是否可以在代码中定义这些绑定(bind)?

最佳答案

在 xml 中设置 MvxItemTemplate 并在 fragment 中创建项目绑定(bind)。

关于android - 如何通过代码绑定(bind)到 MvxRecyclerView ItemsSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603630/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com