2011-11-14 1 views
0

がWindows Phone(およびMVVM全般)とどのように機能するのか理解しようとしていますので、Windows Phoneアプリケーションを作成しました。インストール済みCaliburn.Micro NuGet package(v1.2.0 - 最新今のところ)、ここで2,3の指示に従った。だから、私は終わった:Windows PhoneでCaliburn.Microを使用できない

WMAppManifest.xml

<DefaultTask Name ="_default" NavigationPage="Views/HomeView.xaml"/> 

フレームワーク/ AppBootstrapper.cs

using System; 
using System.Collections.Generic; 
using System.Diagnostics; 
using System.Windows; 
using Caliburn.Micro; 
using MyCaliburn.PhoneUI.ViewModels; 

namespace MyCaliburn.PhoneUI.Framework 
{ 
    public class AppBootstrapper : PhoneBootstrapper 
    { 
     PhoneContainer container; 

     protected override void Configure() 
     { 
      container = new PhoneContainer(RootFrame); 
      container.RegisterPhoneServices(); 
      container.Singleton<HomeViewModel>(); 
     } 

     protected override void OnUnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
     { 
      if (Debugger.IsAttached) 
      { 
       Debugger.Break(); 
       e.Handled = true; 
      } 
      else 
      { 
       MessageBox.Show("An unexpected error occured, sorry about the troubles.", "Oops...", MessageBoxButton.OK); 
       e.Handled = true; 
      } 

      base.OnUnhandledException(sender, e); 
     } 

     protected override object GetInstance(Type service, string key) 
     { 
      return container.GetInstance(service, key); 
     } 

     protected override IEnumerable<object> GetAllInstances(Type service) 
     { 
      return container.GetAllInstances(service); 
     } 

     protected override void BuildUp(object instance) 
     { 
      container.BuildUp(instance); 
     } 
    } 
} 

のviewmodels/HomeViewModel.cs

using Caliburn.Micro; 

namespace MyCaliburn.PhoneUI.ViewModels 
{ 
    public class HomeViewModel : Screen 
    { 
     public HomeViewModel() 
     { 
      //DisplayName = "Home"; 
     } 
    } 
} 

ビュー/ HomeView.xaml.cs(XAMLページがデフォルトのウィンドウ電話ポートレートのページです)

using Microsoft.Phone.Controls; 

namespace MyCaliburn.PhoneUI.Views 
{ 
    public partial class HomeView : PhoneApplicationPage 
    { 
     public HomeView() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

App.xaml

<Application 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Class="MyCaliburn.PhoneUI.App" 
    xmlns:Framework="clr-namespace:MyCaliburn.PhoneUI.Framework"> 

    <!--Application Resources--> 
    <Application.Resources> 
     <Framework:AppBootstrapper x:Key="bootstrapper" /> 
    </Application.Resources> 

</Application> 

App.xaml.cs

using System.Windows; 

namespace MyCaliburn.PhoneUI 
{ 
    public partial class App : Application 
    { 
     /// <summary> 
     /// Constructor for the Application object. 
     /// </summary> 
     public App() 
     { 
      // Standard Silverlight initialization 
      InitializeComponent(); 
     } 
    } 
} 

私がF5を押すと、アプリカチオンは実行され、ページや例外を表示せずに終了し、私が座っているブレークポイントには当たらない。

誰かが私のコードでアプリケーションの実行を妨げていることを教えてくれますか?

ありがとうございます。

答えて

3

何度も、私が起動しないアプリになったとき、リファクタリングのためにAppクラスがスタートアップオブジェクトではないことが判明しました。ソリューションエクスプローラでプロジェクトを右クリックし、プロパティ/アプリケーションに進み、スタートアップオブジェクトが正しく設定されていることを確認します。

+0

私は非常にばかげたことを逃した気がしました:)あなたが正しいです、起動オブジェクトが正しく設定されていませんでした。 – TheBlueSky