C# 删除UITableViewCell选择时出现问题-MvvmCross/Xamarin.iOS
我有一个ViewController,其中包含一个TableView,该TableView单元格包含另一个TableView。在点击相关单元格后,我需要删除子TableView的单元格选择,但我找不到完成工作的方法 这是我的代码 父TableViewCell类C# 删除UITableViewCell选择时出现问题-MvvmCross/Xamarin.iOS,c#,uitableview,xamarin.ios,mvvmcross,C#,Uitableview,Xamarin.ios,Mvvmcross,我有一个ViewController,其中包含一个TableView,该TableView单元格包含另一个TableView。在点击相关单元格后,我需要删除子TableView的单元格选择,但我找不到完成工作的方法 这是我的代码 父TableViewCell类 public partial class ParentTableViewCell : MvxTableViewCell { protected ParentTableViewCell(IntPtr handle) : base(h
public partial class ParentTableViewCell : MvxTableViewCell
{
protected ParentTableViewCell(IntPtr handle) : base(handle) { }
public override void AwakeFromNib()
{
base.AwakeFromNib();
MvxTableViewSource childTableViewSource = new ChildTableViewSource(ChildTableView);
ChildTableView.Source = childTableViewSource;
var set = this.CreateBindingSet<ParentTableViewCell, ParentCellViewModel>();
set.Bind(childTableViewSource).To(vm => vm.ChildTableViewItems);
set.Bind(childTableViewSource).For(tvs => tvs.SelectionChangedCommand).To(vm => vm.ChildTableViewItemsClickCommand);
set.Apply();
ChildTableView.ReloadData();
}
}
父单元格ViewModel类
public class ParentCellViewModel : MvxViewModel
{
protected readonly IMvxNavigationService _navigationService;
//other parameters
public BaseViewModel(IMvxNavigationService navigationService)
{
_navigationService = navigationService;
}
private MvxCommand<ChildCellViewModel> _childTableViewItemsClickCommand;
public MvxCommand<ChildCellViewModel> ChildTableViewItemsClickCommand => _childTableViewItemsClickCommand =
_childTableViewItemsClickCommand ?? new MvxCommand<ChildCellViewModel>(OnChildTableViewItemsClickCommand);
public async void OnChildTableViewItemsClickCommand(ChildCellViewModel item)
{
//passing item id to edit view
MvxBundle bundle = new MvxBundle();
bundle.Data.Add("ID", item.ID);
await _navigationService.Navigate<ChildCellEditViewModel, MvxBundle>(bundle);
}
}
公共类ParentCellViewModel:MvxViewModel
{
受保护的只读IMvxNavigationService\u navigationService;
//其他参数
公共基础视图模型(IMvxNavigationService navigationService)
{
_导航服务=导航服务;
}
私有MvxCommand\u childTableViewItemsClickCommand;
公共MvxCommand ChildTableViewItemsClickCommand=>\u ChildTableViewItemsClickCommand=
_childTableViewItemsClickCommand??新的MvxCommand(OnChildTableViewItemsClickCommand);
公共异步void OnChildTableViewItemsClickCommand(ChildCellViewModel项)
{
//将项目id传递给编辑视图
MvxBundle bundle=新的MvxBundle();
bundle.Data.Add(“ID”,item.ID);
等待导航服务。导航(捆绑);
}
}
这里发生的情况是,RowSelected方法运行,但是OnChildTableViewItemsClickCommand不会被命中。据我所知,这是因为RowSelected和SelectionChangedCommand都存在,我认为在ViewModel中不可能取消选择单元格
我试图在行高亮显示的方法中取消选择单元格。但由于某种原因,它并没有取消选择单元格
有人能告诉我一种方法来同时取消选择行和导航到编辑视图吗。任何帮助都将不胜感激
public class ParentCellViewModel : MvxViewModel
{
protected readonly IMvxNavigationService _navigationService;
//other parameters
public BaseViewModel(IMvxNavigationService navigationService)
{
_navigationService = navigationService;
}
private MvxCommand<ChildCellViewModel> _childTableViewItemsClickCommand;
public MvxCommand<ChildCellViewModel> ChildTableViewItemsClickCommand => _childTableViewItemsClickCommand =
_childTableViewItemsClickCommand ?? new MvxCommand<ChildCellViewModel>(OnChildTableViewItemsClickCommand);
public async void OnChildTableViewItemsClickCommand(ChildCellViewModel item)
{
//passing item id to edit view
MvxBundle bundle = new MvxBundle();
bundle.Data.Add("ID", item.ID);
await _navigationService.Navigate<ChildCellEditViewModel, MvxBundle>(bundle);
}
}