【发布时间】:2013-06-08 23:02:57
【问题描述】:
使用 MvvmCross,我正在尝试将 TextView 的 android:visibility 绑定到类似于“Results.Count”的路径,并使用转换器设置将整数转换为可见性(如果不为 null 且大于零,则 TextView 可见) .
如果 Results 为 null,则在应用输出中显示错误:
[MvxBind] 1.34 绑定执行期间出现的问题 from SearchResult.Count to Visibility - 问题 InvalidCastException: Null 对象不能转换为值类型。 [MvxBind] 在 System.Convert.ToType(System.Object 值,System.Type 转换类型、IFormatProvider 提供程序、布尔值 try_target_to_type) [0x00000] 在 :0 [MvxBind] 在 System.Convert.ChangeType(System.Object 值,System.Type ConversionType,IFormatProvider 提供程序)[0x00000] in :0 [MvxBind] at Cirrious.MvvmCross.Binding.ExtensionMethods.MvxTypeExtensions.MakeSafeValue (System.Type propertyType, System.Object 值) [0x00000] in :0 [MvxBind] at Cirrious.MvvmCross.Binding.Bindings.Target.MvxPropertyInfoTargetBinding.MakeSafeValue (System.Object 值) [0x00000] in :0 [MvxBind]
在 Cirrious.MvvmCross.Binding.Bindings.Target.MvxPropertyInfoTargetBinding.SetValue (System.Object 值) [0x00000] in :0 [MvxBind]
在 Cirrious.MvvmCross.Binding.Bindings.MvxFullBinding.UpdateTargetFromSource (布尔 isAvailable,System.Object 值)[0x00000] in :0 MvxBind:Error: 1.34 绑定执行期间出现的问题 从 SearchResult.Count 到 Visibility - 问题 InvalidCastException:Null 对象无法转换为值 type.MvxBind:Error: 1.34 绑定执行期间出现的问题 从 SearchResult.Count 到 Visibility - 问题 InvalidCastException: Null 对象不能转换为值类型。在 System.Convert.ToType(System.Object 值,System.Type 转换类型、IFormatProvider 提供程序、布尔值 try_target_to_type) [0x00000] in :0 在 System.Convert.ChangeType (System.Object 值、System.Type 转换类型、IFormatProvider 提供者)[0x00000] in :0
转换器没有被调用。 我本来希望在这种情况下调用转换器,就像在 Silverlight 或 WPF 中一样。
我尝试通过源代码添加 MvvmCross 自己调试此问题(我从 github 添加了所有必要的项目)。 我在异常调用堆栈中显示的不同方法中设置了断点(例如:Cirrious.MvvmCross.Binding.ExtensionMethods.MvxTypeExtensions.MakeSafeValue),但是在运行时,没有命中断点,它们被调试器忽略了。
奇怪的是,在 MvvmCross 源代码的其他部分(如在 MvxAndroidSetup 中)设置断点有效。
除了转换器的问题,我想知道如何使断点在 MvvmCross 代码中工作。如果可能的话,它会让我了解更多,甚至参与到开发中。
【问题讨论】:
标签: android xamarin.ios xamarin.android mvvmcross