Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除UITableViewCell选择时出现问题-MvvmCross/Xamarin.iOS_C#_Uitableview_Xamarin.ios_Mvvmcross - Fatal编程技术网

C# 删除UITableViewCell选择时出现问题-MvvmCross/Xamarin.iOS

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

我有一个ViewController,其中包含一个TableView,该TableView单元格包含另一个TableView。在点击相关单元格后,我需要删除子TableView的单元格选择,但我找不到完成工作的方法

这是我的代码

父TableViewCell类

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不会被命中。据我所知,这是因为RowSelectedSelectionChangedCommand都存在,我认为在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);
    }
}