C# Xamarin iOS-MVVMCross:无法使用ViewModel中的命令连接自定义单元格中的按钮

C# Xamarin iOS-MVVMCross:无法使用ViewModel中的命令连接自定义单元格中的按钮,c#,mvvm,xamarin,xamarin.ios,mvvmcross,C#,Mvvm,Xamarin,Xamarin.ios,Mvvmcross,我正在为我的Xamarin iOS项目使用MVVMCross。我用的是牢房里的按钮。我想通过命令将其连接到viewModel,但由于某些原因,我无法成功绑定它们 请有人看一下,让我知道我哪里做错了,或者我应该对我的代码做什么更新 查看: public partial class MyCell : MvxCollectionViewCell { public PostImageCell(IntPtr handle) : base(handle) {

我正在为我的Xamarin iOS项目使用MVVMCross。我用的是牢房里的按钮。我想通过命令将其连接到viewModel,但由于某些原因,我无法成功绑定它们

请有人看一下,让我知道我哪里做错了,或者我应该对我的代码做什么更新

查看:

public partial class MyCell : MvxCollectionViewCell 
{
        public PostImageCell(IntPtr handle) : base(handle)
        {
            this.DelayBind(() =>
            {
                    var bSet = this.CreateBindingSet<MyCell, SomeViewModel>();
                    bSet.Bind(Btn).To(vm => vm.EditPhotoCommand);
                    bSet.Apply();
            });
        }
}
public class SomeViewModel : BaseCoreViewModel
{
        public SomeViewModel()
        {
         editPhotoCommand = new BaseMvxCommand(DoShow);
        }

        public ICommand EditPhotoCommand { get { return editPhotoCommand; } }

        private void DoShow()
        { 
          //
        }
}
我保留了一些断点,并意识到当调用
MyCell
构造函数时,
this.DelayBind()
中的代码没有被命中,所以我尝试删除
this.DelayBind
,但仍然没有用。
每当我单击单元格内的按钮时,它都不会绑定到ViewModel内的命令

可能会在ViewModel中执行如下操作,然后绑定为bSet.bind(Btn).to(vm=>vm.ClickCommand);我已经在视图上正确设置了您的按钮。我有一个示例正在使用tableviewcell上的按钮

    private MvxCommand _clickCommand;
    public ICommand ClickCommand
    {
        get
        {
            _clickCommand = _clickCommand ?? new MvxCommand(Hit);
            return _clickCommand;
        }
    }

    private void Hit()
    {
        System.Diagnostics.Debug.WriteLine("Tapped Click Me");
        //System. .WriteLine ("Tapped Click Me");
    }

可能在ViewModel中执行以下操作,然后绑定为bSet.bind(Btn.To)(vm=>vm.ClickCommand);我已经在视图上正确设置了您的按钮。我有一个示例正在使用tableviewcell上的按钮

    private MvxCommand _clickCommand;
    public ICommand ClickCommand
    {
        get
        {
            _clickCommand = _clickCommand ?? new MvxCommand(Hit);
            return _clickCommand;
        }
    }

    private void Hit()
    {
        System.Diagnostics.Debug.WriteLine("Tapped Click Me");
        //System. .WriteLine ("Tapped Click Me");
    }

您的
Btn
控件是否继承自
ui按钮
?如果不是,它是什么类型?@Plac3Hold3r是的,它源于UIButtonAzhar Ali。你能提供一个复制这个问题的样本吗?你能分享你的xib/nib文件吗?如果在
MyCell
中覆盖
AwakeFromNib
,并手动将按钮添加到单元格的内容视图
public override void AwakeFromNib(){base.AwakeFromNib();ContentView.AddSubview(Btn);},则可以测试问题是否在这里
@Plac3Hold3r如何在此处共享我的xib文件?您的
Btn
控件是否继承自
UIButton
?如果不是,它是什么类型?@Plac3Hold3r是的,它源于UIButtonAzhar Ali。你能提供一个复制这个问题的样本吗?你能分享你的xib/nib文件吗?如果您在
MyCell
中覆盖
AwakeFromNib
,并手动将按钮添加到单元格的内容视图
public override void AwakeFromNib(){base.AwakeFromNib();ContentView.AddSubview(Btn);}
@Plac3Hold3r如何在此处共享我的xib文件,您可以测试问题是否在这里?