繁体   English   中英

如何使用Xamarin iOS在MugenMvvm中使用自定义控件绑定事件

[英]How can I bind to an event with a custom control in MugenMvvm with Xamarin iOS

我想将TouchUpInside事件绑定到带有MugenMvvm的Xamarin iOS上的自定义控件。

bindingSet.Bind(moreThanFourHoursButton).To(() => (vm, ctx) => vm.TimeButtonClickedCommand)

我尝试了上面的代码,但我得到以下异常:

错误:无法从“Mobile.EDevice.iOS.Views.Custom.TimeButton”上的路径“DefaultBindingMember”获取绑定成员。 at MugenMvvmToolkit.Binding.Infrastructure.BindingMemberProvider.GetBindingMember(System.Type sourceType,System.String path,System.Boolean ignoreAttachedMembers,System.Boolean throwOnError)[0x0010a] in <89993fb2052d4882bce9f7d6fb2304e4>:0 at MugenMvvmToolkit.Binding.BindingExtensions.TryGetBindingMemberValue [TSource ,TValue](资源来源,MugenMvvmToolkit.Binding.Models.BindingMemberDescriptor 2[TSource,TValue] member, System.Object[] args, System.Boolean throwOnError, TValue& value) [0x0003f] in <89993fb2052d4882bce9f7d6fb2304e4>:0 at MugenMvvmToolkit.Binding.BindingExtensions.GetBindingMemberValue[TSource,TValue] (TSource source, MugenMvvmToolkit.Binding.Models.BindingMemberDescriptor 2 [TSource,TValue]成员,System.Object [] args)[0x00000]位于<89993fb2052d4882bce9f7d6fb2304e4>:0,位于MugenMvvmToolkit.Binding.BindingExtensions .GetBindingMemberValue [TSource,TValue](TSource源码,MugenMvvmToolkit.Binding.Models.BindingMemberDescriptor 2[TSource,TValue] member) [0x00007] in <89993fb2052d4882bce9f7d6fb2304e4>:0 at MugenMvvmToolkit.Binding.BindingBuilderExtensions.Bind[TTarget,TSource] (MugenMvvmToolkit.Binding.Interfaces.IBindingBuilder builder, TTarget targetGeneric) [0x00000] in <89993fb2052d4882bce9f7d6fb2304e4>:0 at MugenMvvmToolkit.Binding.Builders.BindingSet 2[TSource,TValue] member) [0x00007] in <89993fb2052d4882bce9f7d6fb2304e4>:0 at MugenMvvmToolkit.Binding.BindingBuilderExtensions.Bind[TTarget,TSource] (MugenMvvmToolkit.Binding.Interfaces.IBindingBuilder builder, TTarget targetGeneric) [0x00000] in <89993fb2052d4882bce9f7d6fb2304e4>:0 at MugenMvvmToolkit.Binding.Builders.BindingSet 1 [TSource在./ Users / Admin / Documents / CimziaCompanionApp-中的Mobile.EDevice.iOS.Views.Controllers.ActivityTracking.ActivityDurationViewController.ViewDidLoad()[0x00a1b]中绑定[89993fb2052d4882bce9f7d6fb2304e4>:0中的[TLocalTarget](TLocalTarget目标)[0x00006] Mobile / src / iOS / Views / Controllers / ActivityTracking / ActivityDurationViewController.cs:154 at(wrapper managed-to-native)ObjCRuntime.Messaging:void_objc_msgSendSuper_IntPtr_bool_IntPtr(intptr,intptr,intptr,bool,intptr)at UIKit.UIViewController.PresentViewController(UIKit) .UIViewController viewControllerToPresent,System.Boolean animated,System.Action completionHandler)[0x0006e]在/ Users / builder / data / lanes / 4691 / d2270eec / source / xamarin-macios / src / build / ios / native / UIKit / UIViewController.g.cs:789 at MugenMvvmToolkit.iOS.Infrastructure.Mediators.ModalViewMediator.ShowView(MugenMvvmToolkit.iOS.Interfaces.Views.IModalView视图,System.Boolean isDialog,MugenMvvmToolkit.Interfaces。模型.IDataContext上下文)[0x0005f]在<5ec134adfe6542a4bd7f31656741c9a6>:0在MugenMvvmToolkit.Infrastructure.Mediators.WindowViewMediatorBase 1+<>c[TView].<ShowInternal>b__55_2 (MugenMvvmToolkit.Infrastructure.Mediators.WindowViewMediatorBase 1 [TView] base,System .Boolean b,MugenMvvmToolkit.Interfaces.Models.IDataContext arg3)[0x00007]

好吧,所以我想出来了,这是我将我的Command绑定到自定义EventHandler的方式:

bindingSet.Bind(moreThanFourHoursButton, nameof(moreThanFourHoursButton.Click)).To(() => (vm, ctx) => vm.TimeButtonClickedCommand)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM