Средство выбора даты набора инструментов WP7 Silverlight генерирует исключение нулевой ссылки, когда моя страница наследуется от PhoneApplicationPage - PullRequest
0 голосов
/ 22 августа 2011

Когда я использую обычную страницу, унаследованную от PhoneApplicationPage, а не напрямую, DatePicker генерирует исключение null ref ...

Мой пользовательский класс:

public class CustomPhoneApplicationPage : PhoneApplicationPage
{
  public CustomPhoneApplicationPage()
  {
      Loaded += CustomPhoneApplicationPageLoaded;
      IsAnimFromDisabled = false;
      IsAnimToDisabled = false;
      this.Tap += CustomPhoneApplicationPageTap;
      InitTransition();
  }
  private void InitTransition()
  {
    RenderTransform = new CompositeTransform();
    _comeInStoryboard = Application.Current.Resources["FadeIn"] as Storyboard;
    _comeOutStoryboard = Application.Current.Resources["FadeOut"] as Storyboard;
    Debug.Assert(_comeInStoryboard != null, "_comeInStoryboard != null");
    Debug.Assert(_comeOutStoryboard != null, "_comeOutStoryboard != null");
  }
}

Использованиесредство выбора даты в Xaml:

<toolkit:DatePicker x:Name="_dateTimePicker" Value="{Binding SnapshotTime, Mode=TwoWay}" />

Здесь выдается исключение:

Microsoft.Phone.Controls.Toolkit.dll! Microsoft.Phone.Controls.DataSource.GetPrevious(objectlativeTo) + 0x7 байт

Вот как я использую этот класс в качестве основы для своих страниц в приложении:

public partial class AddOrEditData : CustomPhoneApplicationPage
{


    public AddOrEditData()
    {
        InitializeComponent();
        Loaded += AddOrEditDataLoaded;

    }
...
}

Вот полная трассировка стека:

Microsoft.Phone.Controls.Toolkit.dll! Microsoft.Phone.Controls.DataSource.GetPrevious (относительный объект) Строка 58 + 0x7 байт C # Microsoft.Phone.Controls.Toolkit.dll! Microsoft.Phone.Controls.Primitives.LoopingSelector.Balance () Строка 146 + 0xd байт C # Microsoft.Phone.Controls.Toolkit.dll! Microsoft.Phone.Controls.Primitives.LoopingSelector.UpdateData () Строка 552 + 0xc0 байт C # Microsoft.Phone.Control.Toolkit.dll! Microsoft.Phone.Controls.Primitives.LoopingSelector.LoopingSelector_SizeChanged (отправитель объекта, System.Windows.SizeChangedEventArgs e) Строка 365 C # System.Windows.dll! System.Windows.FrameworkElement.OnSizeChanged (отправитель объекта, System.Windows.ventE0.Windows.dll! MS.Internal.JoltHelper.RaiseEvent (цель System.IntPtr, uint eventId, System.IntPtr coreEventArgs, uint eventArgsTypeIndex) + 0xb2 байта [относится к управляемому переходу]

1 Ответ

1 голос
/ 23 августа 2011

Хорошо,

Я решил эту проблему, добавив эту строку кода на мою наследующую страницу, чтобы отключить некоторые пользовательские анимации при выходе из страницы:

 protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
    {
        IsAnimFromDisabled = e.Uri.OriginalString == @"/Microsoft.Phone.Controls.Toolkit;component/DateTimePickers/DatePickerPage.xaml";
        base.OnNavigatingFrom(e);
    }

И это работает!

Спасибо всем!

...