Когда я использую обычную страницу, унаследованную от 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 байта [относится к управляемому переходу]