【发布时间】:2017-10-12 08:40:20
【问题描述】:
所以我有一张幻灯片列表:
SlideListView.axml:
<Mvx.MvxListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:elevation="0dp"
android:padding="5dp"
local:MvxItemTemplate="@layout/slidelistitem"
local:MvxBind="ItemsSource Slides" />
SlideListItemView.axml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/block"
android:elevation="2dp"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<EditText
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Test text" />
<Button
style="@style/ButtonSlide"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Delete" />
</LinearLayout>
所以每张幻灯片都有一个文本和删除按钮。
SlideListItemViewModel.cs:
public class SlideListItemViewModel : MvxViewModel
{
private long _id;
private string _title;
public long Id { get => _id; set => SetProperty(ref _id, value); }
public string Title { get => _title; set => SetProperty(ref _title, value); }
}
在SlideListItemViewModel 我不能有一个构造函数,因为自动映射器需要默认的空构造函数......所以问题是我需要将删除命令绑定到SlideListViewModel。我不知道该怎么做...我还需要做什么,所有删除逻辑都在SlideListViewModel 中而不是SlideListItemViewModel 中?
更新 1
这就是我创建SlideListItemViewModel的地方
public class SlideListViewModel : MvxViewModel
{
private readonly IMvxNavigationService _navigation;
private ICollection<SlideListItemViewModel> _slides;
public ICollection<SlideListItemViewModel> Slides { get => _slides; set => SetProperty(ref _slides, value); }
public SlideListViewModel(IMvxNavigationService navigation)
{
_navigation = navigation;
}
}
【问题讨论】:
-
在哪里创建 SlideListItemViewModel?你不能从那里将父级传递给模型吗?
-
@Cheesebaron 更新了我的问题。并且没有不能将父级传递给模型
-
@NikasŽalias 你能看看我的回答是否能解决你的问题吗?
标签: c# xamarin mvvm xamarin.android mvvmcross