NotImplementedException 0x80004001 после обновления свойства в ViewModel - PullRequest
0 голосов
/ 18 декабря 2010

Контекст является приложением Silverlight для Windows Phone 7. Я отлаживаю с помощью эмулятора.

У меня есть MainPage.xaml с приложенной ViewModel в его DataContext.
Когда страница NavigatedTo В ViewModel вызывается метод для вызова API и отображения информации.

У меня есть метод, который создает Dictionary<string, string>, заполняет его данными и устанавливает его в свойстве, реализующем событие PropertyChanged.

После вызова этого метода отладчик прерывается в App.Application_UnhandledException с NotImplementedException.

Если я пропускаю вызов этого метода с помощью отладчика, исключение не возникает.

Странно то, что исключение возникает после вызова метода, а не внутри!Исключение не содержит InnerException.Существует HResult -2147467263 и сообщение, содержащее "0x80004001".Вот StackTrace:

at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.MeasureNative(IntPtr element, Single inWidth, Single inHeight)
at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at Microsoft.Phone.Controls.Primitives.PanoramaPanel.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.MeasureOverrideNative(IntPtr element, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.MeasureOverrideNative(IntPtr element, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
at Microsoft.Phone.Controls.Panorama.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.MeasureOverrideNative(IntPtr element, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.MeasureOverrideNative(IntPtr element, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)
at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
at Microsoft.Phone.Controls.PhoneApplicationFrame.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)

Вывод отладки содержит:

A first chance exception of type 'System.ArgumentNullException' occurred in mscorlib.dll (x10)
A first chance exception of type 'System.NotImplementedException' occurred in System.Windows.dll (x6)

1 Ответ

1 голос
/ 18 декабря 2010

OHW. Я обнаружил ошибку пользователя, проверив привязки данных на стороне XAML. Вот мой XAML:

<TextBlock Grid.Column="0" Text="{Binding Value}"
           Style="PhoneTextLargeStyle" />
<TextBlock Grid.Column="1" Text="{Binding Key}"
           Style="PhoneTextLargeStyle" />

Я забыл написать, что это статический ресурс:

<TextBlock Grid.Column="0" Text="{Binding Value}"
           Style="{StaticResource PhoneTextLargeStyle}" />
<TextBlock Grid.Column="1" Text="{Binding Key}"
           Style="{StaticResource PhoneTextLargeStyle}" />

Будем надеяться, что этот глупый вопрос / авто-ответ кому-нибудь поможет:)

...