Ошибка привязки свойства типа изображения с Windows Phone - PullRequest
1 голос
/ 11 августа 2011

У меня есть класс со свойством Image:

...
public Image m_coverImage;
public Image CoverImage
{
    get { return m_coverImage; }
    set
    {
        m_coverImage = value;
        //OnPropertyChanged(new PropertyChangedEventArgs("CoverImage"));
    }
}
...

, который я связываю с UserControl (с именем FullDescription) с помощью всплывающего окна:

...
<ContentControl Margin="5,0,20,0"
    Grid.Column="0" VerticalAlignment="Top" HorizontalAlignment="Center" 
    Content="{Binding CoverImage}"/>
...

Изображение загружено ранее иправильно отображается в родительском элементе управления (связан так же, как описано выше), но когда я пытаюсь привязать его к FullDescription UserControl ...

...
FullDescription descriptionPopup = new FullDescription();
descriptionPopup.DataContext = this.Ebook; //This line throw error
...

... я получаю ошибку ArgumentException:

System.ArgumentException не обработан. Message = Параметр неверен.StackTrace: в MS.Internal.XcpImports.CheckHResult (UInt32 hr) в MS.Internal.XcpImports.SetValue (INativeCoreTypeWrapper obj, свойство DependencyProperty, свойство DependencyObject, объект DependencyObject, объект DependencyObject, объект Depentive).в System.Windows.DependencyObject.SetObjectValueToCore (DependencyProperty dp, значение объекта) в System.Windows.DependencyObject.RefreshExpression (DependencyProperty dp) в System.Windows.Data.BindingExpression.RefreshExpression () в System.Windows.Tata.) в System.Windows.Data.BindingExpression.SourceAquired () в System.Windows.Data.BindingExpression.DataContextChanged (Object o, DataContextChangedEventArgs e) в System.Windows.FrameworkElement.OnDataContextChanged (DataContextChangst.ConnectEventEnEventEnEventEnEventEnEWR_Emp_Ent_Emp_Ent_Emp_Emp_Ent_Emp_Ent_Emp_Ent_Emp_Ent_Emp_Ent_Emp_Ent_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Ent_Emp_Ent_Ent_Ent_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_Emp_E_E_E_E_Ent.dll).).(DataContextChangedEventArgs e) в System.Windows.FrameworkElement.NotifyDataContextChanged (DataContextChangedEventArgs e)в System.Windows.FrameworkElement.OnAncestorDataContextChanged (DataContextChangedEventArgs е) в System.Windows.FrameworkElement.NotifyDataContextChanged (DataContextChangedEventArgs е) при System.Windows.FrameworkElement.OnAncestorDataContextChanged (DataContextChangedEventArgs е) в System.Windows.FrameworkElement.NotifyDataContextChanged (DataContextChangedEventArgs е) в системе.Windows.FrameworkElement.OnAncestorDataContextChanged (DataContextChangedEventArgs е) при System.Windows.FrameworkElement.NotifyDataContextChanged (DataContextChangedEventArgs е) при System.Windows.FrameworkElement.OnAncestorDataContextChanged (DataContextChangedEventArgs е) при System.Windows.Controls.Primitives.Popup.NotifyDataContextChanged (DataContextChangedEventArgs е)в System.Windows.FrameworkElement.OnAncestorDataContextChanged (DataContextChangedEventArgs e) в System.Windows.FrameworkElement.NotifyDataContextChanged (DataContextChangedEventArgs e) в System.Windows.FangedProEptoPro ()ncyProperty dp) в System.Windows.DependencyObject.RaisePropertyChangeNotifications (DependencyProperty dp, объект newValue, объект oldValue) в System.Windows.DependencyObject.SetValueInternal (DependencyProperty dp, объектное значение, логический объект-присваиваемый метод-логика.Windows.DependencyObject.SetValueInternal (DependencyProperty dp, значение объекта) в System.Windows.DependencyObject.SetValue (DependencyProperty dp, значение объекта) в System.Windows.FrameworkElement.set_DataContext (значение объекта) в Mobiltec.ader.We..EbookPhotoSummary.hplMore_Click (Отправитель объекта, RoutedEventArgs e) в System.Windows.Controls.Primitives.ButtonBase.OnClick () в System.Windows.Controls.HyperlinkButton.OnClick () в System.Windows.Controls.PriaseeutnutouseMutMouseButtonEventArgs e) в System.Windows.Controls.Control.OnMouseLeftButtonUp (Control ctrl, EventArgs e) в MS.Internal.JoltHelper.FireEvent (IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName) в Microsoft.Xna.Framework.Input.UnsafeNativeMethods.CallWindowProc (IntPtr lpPrevWndFunc, IntP, RTP, IntP, hp, IntP, htP, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp, IntP, hp),в Microsoft.Xna.Framework.Input.SafeNativeMethods.CallWindowProc (IntPtr lpPrevWndFunc, IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) в Microsoft.Xna.Framework.Inook. Intr.wParam, IntPtr lParam)

Есть идеи?

Заранее спасибо.


Мне удалось решить проблему.Изменено

<ContentControl Margin="5,0,20,0"
Grid.Column="0" VerticalAlignment="Top" HorizontalAlignment="Center" 
Content="{Binding CoverImage}"/>

на

<Image Margin="5,0,20,0" Grid.Column="0" VerticalAlignment="Top"
HorizontalAlignment="Center" Source="{Binding CoverImage.Source}"/>

и все работает отлично.Спасибо

1 Ответ

0 голосов
/ 11 августа 2011

К сожалению, ошибки, предоставляемые платформой Silverlight, часто очень расплывчаты, как и здесь.

Лучший совет, который я могу вам дать, - это сузить проблему. Упростите свой код, чтобы он был наименьшим примером, демонстрирующим эту проблему. Если вы можете предоставить краткий пример, обновите свой вопрос. На данный момент далеко не ясно, чтобы ответить.

...