Xamarin Studio で Mono 2.10.11 に対して iOS 予定アプリを実行しています。
予定の詳細画面では、結果に基づいて予定を評価できます。ビジネス ロジックに基づいたブール セットに基づいて、評価を許可するボタンが表示されます。バインドされたボタンは、評価画面を開くトリガーとなります。モバイルおよびデバッガーの iOS 6.1 と iOS 7 シミュレーターで正常に動作します。iOS 7 デバイスでは機能しません。
AppointView.cs には、次のようにボタンを設定する関数 ViewDidLoad が含まれています。
AppointmentViewTable.Source = _source;
this.AddBindings (new Dictionary<object, string>
{
{ _source, "{'ItemsSource':{'Path':'AppointmentDetails'}, 'HeaderTitle':{'Path':'Appointment.AppointmentDate','converter':'DateTime'}}" },
{ btnRateSession, "{'Hidden':{'Path':'Appointment.RateAvailable','converter':'InvertedVisibility'}, 'Title':{'Path':'TextSource','Converter':'Language','ConverterParameter':'btnRateSession'}, 'TouchDown':{'Path':'GoToSessionRateView'}}"}
});
予定ビューを作成してプログラムを実行すると、次の警告が表示されます。
2013-10-18 16:58:55.012 M2FitiOS[3773:a0b] MvxBind: Error: 14.12 Problem seen during binding execution for from Appointment.RateAvailable to Hidden - problem InvalidCastException: Null object can not be converted to a value type.
at System.Convert.ToType (System.Object value, System.Type conversionType, IFormatProvider provider, Boolean try_target_to_type) [0x00017] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Convert.cs:2553
at System.Convert.ChangeType (System.Object value, System.Type conversionType, IFormatProvider provider) [0x00017] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Convert.cs:2204
at Cirrious.MvvmCross.Binding.ExtensionMethods.MvxTypeExtensions.MakeSafeValue (System.Type propertyType, System.Object value) [0x00000] in <filename unknown>:0
at Cirrious.MvvmCross.Binding.Bindings.Target.MvxPropertyInfoTargetBinding.SetValue (System.Object value) [0x00000] in <filename unknown>:0
at Cirrious.MvvmCross.Binding.Bindings.MvxFullBinding.UpdateTargetFromSource (Boolean isAvailable, System.Object value) [0x00000] in <filename unknown>:0
AppointmentViewModel にはイベントが含まれています:-
public ICommand GoToSessionRateView
{
get
{
return new MvxRelayCommand(() => RequestNavigate<SessionRateViewModel>(new { appointmentId = _appointmentId }));
}
}
イベントが機能しなくなった原因がわかりません。任意のポインタをいただければ幸いです。