2016-08-31 10 views
0

を働いていない私は、コードのこれらの作品を持っている:btnPlanningボタンをクリックのtry-catchをロードXAMLリソース

private void btnPlanning_Click(object sender, RoutedEventArgs e) 
    { 
     LoadPage("PlanningView.xaml"); 
    } 

    private void LoadPage(string APage) 
    { 
     try 
     { 
      frameMainView.Source = new Uri(APage, UriKind.Relative); 
     } 
     catch (Exception ex) 
     { 
      string errorString = $"Resource <{APage}> not found! "; 
      DoLogD(errorString + " " + ex.Message); 
      MessageBox.Show(errorString); 
     } 
    } 

LoadPageはXAMLリソースの名前に文字列を渡すと呼ばれ、私がしたいですフレームコントロールframeMainViewにロードしてください。

与えられたリソースが存在しない場合は、例外をキャッチしてユーザーに通知したいと思います。

問題は、私はボタンをクリックしてください(とリソースが存在しない)とき、私はどのような場合に

PresentationFramework.pdbを得ることをロードされていない

と内部システム.IO.IOExceptionはリソースが利用できないことを伝えます。

なぜ私のtry-catchブロックが機能しないのですか?

+0

デバッガで実行している場合は、最初のチャンス例外が発生している可能性があります。デバッグ - >例外をチェックして、 "User-unhandled"カラムだけがチェックされていることを確認してください。 – GazTheDestroyer

+0

それはそれではない場合。あなたのDoLogD()コールをコメントアウトしてみてください。メッセージボックスが表示される前に例外がスローされている可能性があります。 – GazTheDestroyer

+0

最近、ターゲットフレームワークを変更しましたか? 対象のフレームワークを確認した後、ソリューション全体をきれいにして再構築してください。 – ViVi

答えて

-1

これはユーザーインターフェイスの初期化問題です。 Visual Studioの[出力]ウィンドウから詳細情報を取得できますか?

1

フレームにページをロードするための多くの方法がある:

  1. ソース

    frameMainView.Source =新しいウリ( "PlanningView.xaml"、UriKind.RelativeOrAbsolute)を設定することで、コンテンツを設定することにより

  2. frameMainView.Content =新しいPlanningView(); NavigationServiceを使用することにより

  3. frameMainView.NavigationService.Navigate(新しいPlanningView())。

+0

オプション2)と3)は私の問題を回避できます。 PlanningViewが存在しない場合 - >コンパイルエラー!それは解決策、ありがとう! – aDone

関連する問題