我在我的視圖中添加了DatePicker,並且出現Visibility屬性(我沒有配置)的錯誤。DatePicker引發可視性異常
的錯誤是:
System.Windows.Data Error: 'MS.Internal.Data.DynamicValueConverter' converter failed to convert value '8/18/1993' (type 'System.String'); BindingExpression: Path='DateOfBirth' DataItem='Gui.ViewModels.RegisterPersonalViewModel' (HashCode=64515557); target element is 'Microsoft.Phone.Controls.DatePicker' (Name='DateOfBirth'); target property is 'Visibility' (type 'System.Windows.Visibility').. System.ArgumentException: Requested value '8/18/1993' was not found.
at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at MS.Internal.SilverlightTypeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
at MS.Internal.Data.DefaultValueConverter.ConvertHelper(Object o, Type destinationType, CultureInfo culture, Boolean isForward)
at MS.Internal.Data.TargetDefaultValueConverter.Convert(Object o, Type type, Object parameter, CultureInfo culture)
at MS.Internal.Data.DynamicValueConverter.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
at System.Windows.Data.BindingExpression.ConvertToTarget(Object value).
的視野看起來像:
<toolkit:DatePicker x:Name="DateOfBirth" />
並在視圖模型中的財產:
public DateTime DateOfBirth { get; set; }
因此,我什麼都沒有,其映射對該字段的可見性屬性。那麼爲什麼它會做出這種約束呢?
我也嘗試添加可見性這樣的結合:
<toolkit:DatePicker x:Name="DateOfBirth"
Visibility="{Binding Path=IsDateOfBirthVisible,
Converter={StaticResource BooleanToVisibilityConverter}}"/>
,並添加一個字段:
public DateTime DateOfBirth { get; set; }
public bool IsDateOfBirthVisible { get; set; }
但後來我得到以下異常:
例外System.Windows.ni.dll中發生類型爲「System.Exception」的錯誤,並未在託管/本機邊界之前處理
我也嘗試添加自定義的約定:
ConventionManager.AddElementConvention<DatePicker>(DateTimePickerBase.ValueProperty, "Value", "SelectedDate");
ConventionManager.AddElementConvention<DatePicker>(DateTimePickerBase.ValueStringFormatProperty, "ValueStringFormat", "ValueStringFormatChanged");
ConventionManager.AddElementConvention<DatePicker>(DateTimePickerBase.ValueStringProperty, "ValueString", "ValueStringChanged");
ConventionManager.AddElementConvention<DatePicker>(UIElement.VisibilityProperty, "Visibility", "VisibilityChanged");
但是,這並不有所作爲。
我是新來的caliburn和windows手機,所以可能有一個愚蠢的錯誤的地方。
如何擺脫該異常?
(該日期選擇是從https://phone.codeplex.com/)
來自誤差是似乎對能見度的結合是將日期項,而不是爲布爾項,BindingExpression:路徑=「DATEOFBIRTH」的DataItem =「Gui.ViewModels.RegisterPersonalViewModel」(的HashCode = 64515557);目標元素是'Microsoft.Phone.Controls.DatePicker'(Name ='DateOfBirth');目標屬性是'可見性'(類型'System.Windows.Visibility').. System.ArgumentException:請求值'8/18/1993'未找到。 – whoisthis
@bjoshi:但爲什麼它會嘗試使用可見性? – jgauffin
這很奇怪。您是否嘗試刪除'x:Name'屬性以查看問題是否仍然存在,我的意思是不是精益CM自動配置綁定? –