BindableApplicationBar (Phone7.Fx)


Phone7.FxのBindableApplicationBarだが、残念ながら使えなかった。
まず第一に、XAML上、PhoneApplicationPage#ApplicationBarプロパティにセットできないということ。※もう一つは、他のコンテナ(Grid)上に配置しても何故か私の環境では表示できないということ。

特にPhoneApplicationPage#ApplicationBarにセットできないとBlend4側の各種支援を受けられないため、一気に使いづらくなってしまう。

ということで振り出しに戻るのだった。

※無理矢理セットすると「PhoneApplicationPage only accepts the ApplicationBar implementation of IApplicationBar」という例外が発生してしまう。

Microsoft.Expression.DesignModel.Core.InstanceBuilderException
PhoneApplicationPage only accepts the ApplicationBar implementation of IApplicationBar
   場所 Microsoft.Windows.Design.DocumentModel.ModelProducer.b__2(Damage damage)
   場所 MS.Internal.Design.DocumentModel.DocumentTrees.VirtualModel.VirtualModelDocumentTreeManager.OnEditingScopeComplete(VirtualEditingScope scope)
   場所 MS.Internal.Design.DocumentModel.DocumentTrees.VirtualModel.VirtualModelDocumentTreeManager.VirtualEditingScope.OnComplete()
   場所 Microsoft.Windows.Design.Model.ModelEditingScope.Complete()
   場所 MS.Internal.DeviceUtil.DeviceUtilities.SetDimensions(ModelItem root, Double width, Double height)
   場所 MS.Internal.DeviceUtil.RootPageProperties.<_modelService_ModelChanged>b__0(Object arg)
   場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   場所 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

 
System.InvalidOperationException
PhoneApplicationPage only accepts the ApplicationBar implementation of IApplicationBar
   場所 Microsoft.Phone.Controls.PhoneApplicationPage.SetApplicationBarOnPage(ShellPage shellPage, IApplicationBar appBar)
   場所 Microsoft.Phone.Controls.PhoneApplicationPage.ApplicationBarPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
   場所 System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
   場所 System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
   場所 System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet)
   場所 Microsoft.Phone.Controls.PhoneApplicationPage.set_ApplicationBar(IApplicationBar value)