0

私は、アプリケーションの別のページに移動する必要があるたびに、this.NavigationService.Navigate(new Uri(page.xaml, UriKind.Relative));と入力して疲れました。カスタムベースページが破損するようにデザインビューを引き起こす

私は自分のアプリをナビゲートするのに役立つバーチャルでカスタムBasePageを作成しました。

ソースとデザインのビューを開いているとVS2010に問題があります。デザインにはWindowsの電話の背景が表示され、上から下に向かって青い波線が表示されますxの行はサポートされていません。これは私がカスタムBasePageから継承するように設定したページで発生します。

ただし、Windows Phoneまたはエミュレータでアプリケーションを実行すると動作します。

私のカスタムベースを適用している間にデザインビューを維持しようとする可能性のあることは誰にもありませんか?

Aは少し私のBasePageクラスのバージョンをダウンカットがある:

public class BasePage : PhoneApplicationPage 
{ 
    public virtual void NavigateTo(string pageName, params Tuple<string,string>[] queryString) 
    { 
     // Code to perform this.NavigationService.Navigate 
    } 
} 

EDIT 2011-08-16

このベースページの一部は、私が実行したPhoneApplicationPageOnNavigatedToメソッドをオーバーライドしますセキュリティチェックがどうかを確認します

  1. セキュリティが有効になっている
  2. ユーザーがログインしています

セキュリティが有効になっているが、ユーザーがログインしていない場合は、すぐにログインページにリダイレクトされます。

BasePageから派生している限り、これを処理する既存のページまたは新しいページにコードを追加する必要がないので、これは便利です。

答えて

1

このためにBasePageを使用することはお勧めしません。代わりに、NavigateToメソッドを静的メソッドとしてApp.xaml.csファイルに追加するだけです。

public static void NavigateTo(string pageName, params Tuple<string,string>[] queryString) 
{ 
    // Code to perform this.NavigationService.Navigate 
} 

また、そのすべてのトランジションエフェクトが適切に実行されDispatcher.BeginInvoke.Navigateへの呼び出しをラップすることを忘れないでください。

ボーナスのヒント:Visual Studioでデザイナを使用しないでください。代わりに、XAMLファイルの「デフォルトエディタ」を「ソースコード」エディタに設定して、デザイナが決して開かれないようにします。これにより、Visual Studioの安定性が大幅に向上します。

あなたがデザイナーをしたい場合は、Microsoft式(ブレンド)

+0

に助けてくれてありがとうを取得する必要があり、私はおそらく私のアプリを持っている場合、私は、各ページを確認できるように、私は 'OnNavigateTo'オーバーライドを使用して追加している必要がありますパスワード機能がオンになっていて、ページに入る前にログインしていた場合すでに式ブレンドを持っているので、sdkツールもあります。なぜ、私のBasePageはデザインを返さないのですか? –

+0

私は静的メソッドとしてthis.NavigationService.NavigateToは動作しません。 NavigationServiceは 'Application'クラスでコンパイルされません。何か不足していますか? –

+0

ああ、もちろん、あなたはCurrent RootVisualでそれを呼び出す必要があります。 '(App。RootVisual As PhoneApplicationFrame).NavigateTo(...) ' –

関連する問題