※サンプルコードのダウンロードは、原文リンクから行ってください。
パターンと実践 ディベロパー・センター
View-Switching Navigation QuickStart Using the Prism Library 5.0 for WPF(原文)
Microsoft Prism Library 5.0 for WPFの開発者のガイドから:
ビュー切り替えナビゲーションのクイックスタート・サンプルはModel-View-ViewModel(MVVM)パターンによるPrismの領域ナビゲーションAPIを、 どのように使用するかを説明します。Prismの領域ナビゲーションは、Viewの間で切り換えるために、 統一リソース識別子 (URI)アプローチを利用します。QuickStartは、 簡単な電子メール、連絡先とカレンダー・アプリケーションのナビゲーションをシミュレーションします。 左の領域は、中心となるViewの各々にナビゲーションを提供します。 Viewは、後ろへナビゲーションと非同期ダイアログ相互作用を実証します。
ビュー切り替えナビゲーションのクイックスタートは、それが複数のナビゲーション・シナリオを実証するため、 代表的なQuickStartに比べて更に複雑です。ナビゲーションは、かんばん方式のView作成をサポートしています。 そして、したがって、依存関係注入コンテナで相互作用します。さらに、Model-View-ViewModel(MVVM)アプローチと互換性を持っています。 ナビゲーションは、Viewで、そして、View Model(DataContextプロパティを通して)で相互作用します。
このQuickStartは、次のナビゲーション機能を実証します:
- 領域内で、ビューを操作する
- もう一つのビュー(入れ子にされたナビゲーション)に含まれている領域のビューを操作します。
- ナビゲーションジャーナルのサポート、
- ジャスト・イン・タイム・ビューの作成、
- ビューに移動するとき、文脈上の情報を渡します。
- ViewとView Modeは、ナビゲーションを確認、あるいは、キャンセルすることが含まれているナビゲーション内で、関与しています。
- アプリケーションの部品として、利用するナビゲーションは、モジュール方式とユーザー・インターフェイス(UI)構成を通して構築します。
実際の使い方
Business Scenario
ビュー切り替えナビゲーションのクイックスタートのメイン・ウィンドウは、簡単な電子メール・クライアント・アプリケーションを表示します。 このウィンドウの中で、ナビゲーション枠は、画面の左側に配置され、アプリケーション機能に、直接、アクセスを提供します。 これらの機能は、メール、カレンダーと詳細とアバターViewがある連絡先です。中心となる枠に、選択された機能が、表示されます。 アプリケーションが開始するとき、メール機能が選択されていることに注意します。 これは、Emailモジュールが読み込まれるとき、シェルによって調整されます。
モジュールは、それらの間の依存関係を持っていないので、それらは、ランダムな順序で読み込まれ、そして、初期化されます。 左側の枠の項目が、並べられていることを確認します。ViewSortHint属性も、Viewの各々に適用されます。 ViewSortHint属性の詳細については、連絡先モジュール(入れ子にされたViewへのナビゲーション) (原文)の項目を参照してください。
次に示す図は、クイックスタートのメイン・ウィンドウを示しています。
ビューの切り替えナビゲーションのQuickStartユーザー・インターフェイス
備考
QuickStartのUIは、詳細な情報アイコンを持っています。QuickStartの異なる部分について、 あなたは、情報と実装のメモを表示する、あるいは、非表示にするために、それらをクリックすることができます。
QuickStartを構築して、そして、実行する
Building and Running the QuickStart
このクイックスタートは、Microsoft Visual Studio 2012以降と.NET Framework 4.5.1を必要とします。
ビューの切り替えナビゲーションのQuickStartを構築し、そして、実行するために、
- Visual Studioでは、ソリューション・ファイルQuickstarts\View-Switching Navigation_Desktop\ ViewSwitchingNavigation.slnを開けます。
- Buildメニュー内で、Rebuild Solutionをクリックします。
- QuickStartを実行するために、F5を押してください。
実装の詳細
Implementation Details
QuickStartは、あなたが、考慮する必要がある重要な要素を強調します。 複合アプリケーションで、ナビゲーションを実装するために、Prism Libraryで、あなたが、ナビゲーションを使用するとき、機能が提供されます。 この方法では、ユーザー・インターフェイスは、異なるモジュールの間で分割されます。各々のモジュールは、左側のナビゲーション領域を埋め込みます。 そして、ナビゲーション内で、右側の中心となるコンテンツ領域で、Viewを調整するために関与します。 この項目は、QuickStartの重要な成果物を説明します。 次の図は、ユーザーが、1つの場所から他の場所まで、移動するとき、発生する作業の流れが示されています。
Prismの領域ナビゲーション作業の流れ
Prism Region Navigation Workflow
Prism Libraryのナビゲーション・サポート
Navigation Support in the Prism Library
Prism Libraryは、領域を使用して、ナビゲーションをサポートしています。 Navigationクラスとコンポーネントは、Microsoft.Practices.Prism.Regions名前空間に配置されます。 次のコードの例に示すように、各々の領域は、INavigateAsyncインターフェイスを実装しています。
C#
public interface IRegion : INavigateAsync, INotifyPropertyChanged
{
...
}
IRegionインターフェイスは、領域の間で、ナビゲーションを提供する、NavigationServiceプロパティを提供します。 それぞれ領域は、独自のNavigationServiceを持っています。 そして、それぞれのNavigationServiceは、領域内に、独自の履歴や現在、過去の記録、そして、機能ナビゲーションを持っています。 NavigationServiceは、IRegionNavigationServiceを返します。 IRegionNavigationServiceインターフェイスは、次のコード例で示されます。
C#
public interface IRegionNavigationService : INavigateAsync
{
IRegion Region { get; set; }
IRegionNavigationJournal Journal { get; }
event EventHandler<RegionNavigationEventArgs> Navigating;
event EventHandler<RegionNavigationEventArgs> Navigated;
event EventHandler<RegionNavigationFailedEventArgs> NavigationFailed;
}
NavigationServiceは、その関係する領域に参照を持っており、そして、ナビゲーション履歴を参照します。 さらに、それは、NavigatingとNavigatedイベントが含まれています。Navigatingイベントは、ページに移動する間に起動します。 そして、領域が、内容に移動するとき、Navigatedイベントが、発生します。
サービスからのメソッドは、移動するために、RequestNavigateを使用します。 このメソッドは、移動が完了すると、呼び出される、対象とするナビゲーションとコールバックを必要とします。
]このメソッドは、前述の図の中で説明される、作業の流れを開始します。 それは、ソースとコールバックと一緒に、サービスのDoNavigateメソッドを呼び出します。 それは、続いて、RequestCanNavigateOnCurrentlyActiveViewsを呼び出します。 移動が、成功するかどうかにかかわらず、移動が、終了した時、コールバックは、呼び出されます。 コールバックの後、彼/彼女が、そのViewから移動するとき、 それらが、IConfirmNavigationRequestインターフェイスを実装する場合、 それらが、ユーザーが、プロンプトを表示する、このインターフェイスを実装する場合、 アクティブ・ビューとそれらのView Modelは、決定するために問い合わせます。 最後に、ExecuteNavigationメソッドが、呼び出されます。このメソッドは、次のコード例の中で示されます。
C#
private void ExecuteNavigation(NavigationContext navigationContext, object[] activeViews, Action<NavigationResult> navigationCallback)
{
try
{
NotifyActiveViewsNavigatingFrom(navigationContext, activeViews);
object view = this.regionNavigationContentLoader.LoadContent(this.Region, navigationContext);
// Raise the navigating event just before activing the view.
// Viewをアクティブ化する寸前に、移動しているイベントを呼び出します。
this.RaiseNavigating(navigationContext);
this.Region.Activate(view);
// Update the navigation journal before notifying others of navigaton
// 他に移動を知らせる前に、ナビゲーション履歴を更新します
IRegionNavigationJournalEntry journalEntry = this.serviceLocator.GetInstance<IRegionNavigationJournalEntry>();
journalEntry.Uri = navigationContext.Uri;
this.journal.RecordNavigation(journalEntry);
// The view can be informed of navigation
// Viewは、ナビゲーションを知ることができます。
InvokeOnNavigationAwareElement(view, (n) => n.OnNavigatedTo(navigationContext));
navigationCallback(new NavigationResult(navigationContext, true));
// Raise the navigated event when navigation is completed.
// ナビゲーションが、完成しているとき、移動されたイベントを呼び出します。
this.RaiseNavigated(navigationContext);
}
catch (Exception e)
{
this.NotifyNavigationFailed(navigationContext, navigationCallback, e);
}
}
前述のメソッドは、ユーザーが、どこかに移動するとアクティブ・ビューに通知し、コンテンツ・ローダーを通して、対象とするViewを取得し、 対象とするViewをアクティブにし、そして、履歴を更新します。 ViewとView Modelは、その後、ユーザーが、それらに移動していると通知されます。コールバックは、呼び出されます。 そして、ナビゲーション完了イベントが、発生します。
履歴
The Journal
履歴は、移動するViewの履歴を保持するスタックです。 それは、訪問したページの前方、現在と後方への履歴を格納します。 RecordNavigationメソッドは、スタックで、現在のViewを登録するために使用されます。 あなたは、履歴Viewの内部で移動する場合、履歴は、Viewをスタックに追加することを避けます。
備考
あなたが、ナビゲーションを実装する前に、それは、あなたが、統一リソース識別子 (URI)構造をアプリケーションに定義することが重要です。
ナビゲーションのためのPrism Libraryを使用して、
Using the Prism Library for Navigation
この項目は、QuickStartが、ナビゲーションを実演するために、どのように、Prism Libraryを使用するかを説明します。 Shellビューは、2つの領域を持っています。: ナビゲーション領域と中心となる領域。 あなたは、次のコードで、ViewSwitchingNavigation\Shell.xamlファイルで配置される領域定義を確かめることができます。
XAML
<Grid x:Name="LayoutRoot"
Background="{StaticResource MainBackground}">
...
<Border Grid.Column="0" Grid.Row="2" Background="LightGray" MinWidth="250" Margin="5,0,0,5">
<ItemsControl x:Name="NavigationItemsControl" prism:RegionManager.RegionName="MainNavigationRegion" Grid.Column="0" Margin="5" Padding="5" />
</Border>
<ContentControl prism:RegionManager.RegionName="MainContentRegion"
Grid.Column="1" Grid.Row="2" Margin="5,0,5,5" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"/>
</Grid>
</Grid>
各々のQuickStartモジュール(メール、カレンダーと連絡先)は、 (特定の機能を保持するもの)中心となるコンテンツ領域で、ナビゲーション領域と対応するViewでナビゲーション・ボタンを登録します。
シェルは、電子メール・モジュールが読み込まれるとき、電子メールViewが移動されるために、それが確認するコードが含まれます。 このため、アプリケーションの起動時に、電子メールViewは表示されます。次のコードの項目は、太字で、これを実現して、表示します。
C#
[Export]
public partial class Shell : UserControl, IPartImportsSatisfiedNotification
{
private const string EmailModuleName = "EmailModule";
private static Uri InboxViewUri = new Uri("/InboxView", UriKind.Relative);
public Shell()
{
InitializeComponent();
}
[Import(AllowRecomposition = false)]
public IModuleManager ModuleManager;
[Import(AllowRecomposition = false)]
public IRegionManager RegionManager;
public void OnImportsSatisfied()
{
this.ModuleManager.LoadModuleCompleted +=
(s, e) =>
{
if (e.ModuleInfo.ModuleName == EmailModuleName)
{
this.RegionManager.RequestNavigate(
RegionNames.MainContentRegion,
InboxViewUri);
}
};
}
}
Calendarモジュール(他のモジュールへまたいで移動する)
The Calendar Module (Cross-Navigation to Other Modules)
Calendarモジュールは、もう一つの範囲/モジュールに、またいで移動する方法を示します。 次のコード例は、CalendarモジュールのInitializeメソッドを表示します。
C#
public void Initialize()
{
this.regionManager.RegisterViewWithRegion(RegionNames.MainNavigationRegion, typeof(CalendarNavigationItemView));
}
Initializeメソッドは、CalendarNavigationItemViewビューを登録します。 それは、カレンダー機能を表示するために、使用するボタンです。 CalendarViewビューは、ここで、登録されることができました。 しかし、私たちは、(ナビゲーション間で、ジャストインタイムの作成を通して)領域が利用できるViewを作成するために、異なる仕組みを使用しています。
このボタンのイベントハンドラは、次のコードの例に示すように、 領域の名前を渡して、equestNavigateメソッドを呼び出す領域マネージャーを使用し、そして、URIに移動します。
C#
private void Button_Click(object sender, RoutedEventArgs e)
{
this.regionManager.RequestNavigate(RegionNames.MainContentRegion, calendarViewUri);
}
移動が、完了すると、-すなわち、カレンダー・ビューは、中心となる領域で読み込まれるとき、 そして、Navigatedイベントが起動します。-ボタンが、ユーザーに知らせるために確認されます。 中心となる領域に表示されるViewは、カレンダーです。 これは、次のコード例で、示されています。 QuickStartのあらゆるモジュールは、これらのタスクを実行するために、同じようなコードを持っています。
C#
public void MainContentRegion_Navigated(object sender, RegionNavigationEventArgs e)
{
this.UpdateNavigationButtonState(e.Uri);
}
private void UpdateNavigationButtonState(Uri uri)
{
this.NavigateToCalendarRadioButton.IsChecked = (uri == calendarViewUri);
}
このQuickStartが、MVVMパターンを実装するため、ロジックは、View Modelクラスに配置されます(ナビゲーション・アイテム・ビューを除外します)。 あなたは、URIsを構築することができます。それは、ViewやView Modelに、コンテキストを渡すクエリ文字列を使用します。 例えば、CalendarビューのView Modelクラスで、ユーザーが、会議をクリックすると、クエリ文字列が、ディスプレイに電子メール・メッセージを識別するために、使用されます。 あなたは、次のコード例で、移動するための、URIの構築と要求を見ることができます。
C#
private void OpenMeetingEmail(Meeting meeting)
{
var parameters = new NavigationParameters();
parameters.Add(EmailIdName, meeting.EmailId.ToString(GuidNumericFormatSpecifier));
this.regionManager.RequestNavigate(RegionNames.MainContentRegion, new Uri(EmailViewName + parameters, Urikind.Relative));
}
前述のコードで、PrismのNavigationParametersクラスを使用して、特定のメールのIDが、指定されます。 このクラスは、問合せに追加されている、問合せパラメータを作成します。名前とパラメータの値を取得することによって、 このクラスのToStringメソッドは、すべての指定されたパラメータで、クエリ文字列を作成するために、上書きされます。 この例は、Query Stringを使用して、文字列のパラメータを渡すために、どのように、NavigationParametersクラスを使用するかを紹介します。 しかし、また、それは、RequestNavigateメソッドのオーバーロードを使用して、オブジェクト・パラメータを渡すために、使用することができます。 最後に、問合せは、Viewの名前に添付されます。結果は、次の図に示されいるものと類似しているでしょう。
複雑なURI構造
A complex URI structure
最後に、RequestNavigateメソッドを使用して、領域は、作成されたUriに移動するでしょう。
Contactsモジュール(入れ子にされたViewへの移動)
The Contacts Module (Navigation to a Nested View)
Contactsモジュールは、他のビューの領域にViewが入れ子になった、ナビゲーションを実演します。 このモジュールのViewは、ナビゲーションに関与するために、INavigationAwareインターフェイスを実装します。 連絡先Viewは、sub-Viewが示される領域を持っています。
連絡先モジュールのため、2つのナビゲーション・アイテム・ビューがあります。: ViewSwitchingNavigation.Contacts\Views\ContactsDetailNavigationItemView.xaml.csファイルに配置される、次のコードで示すように、 1つは、連絡先詳細を表示するための、もう1つは、連絡先アバターを表示するための、それぞれのオプションは、異なるURIとクリック・イベントハンドラを持っています。
C#
[Export]
[ViewSortHint("03")]
public partial class ContactsDetailNavigationItemView : UserControl, IPartImportsSatisfiedNotification
{
private const string mainContentRegionName = "MainContentRegion";
private static Uri contactsDetailsViewUri = new Uri("ContactsView?Show=Details", UriKind.Relative);
...
private void NavigateToContactDetailsRadioButton_Click(object sender, RoutedEventArgs e)
{
this.regionManager.RequestNavigate(mainContentRegionName, contactsDetailsViewUri);
}
}
前述のコードで、ViewSortHint属性は、Viewが示す注文を指定するために使用されます。 この場合、ContacstViewNavigationItemは、リストの3番目に配置されています。 並べ替えのヒントの英数字の比較は、注文を決定するために、発生します。 これは、あらゆる実行で同じ注文内の、QuickStartのナビゲーション・ボタンを配置するために使用されます。
ViewやView Modelは、INavigationAwareインターフェイスを実装する必要があります。 それが、ナビゲーション活動を知らせる必要があるとき、そして、それで、それは、URIの問合せを受け取ることができます。 このインターフェイスは、次のナビゲーション・イベントを提供します。
- IsNavigationTarget。このインスタンスが、ナビゲーション要求を処理できるかを、決定するために呼び出されます。
- OnNavigatedFrom。実装オブジェクトが、わきへ移動されているときに、呼び出されます。
- OnNavigatedTo。実装オブジェクトが移動されたとき、呼び出されます。
連絡先Viewは、INavigationAwareインターフェイスを実装しています。連絡先Viewが移動されると、 ナビゲーション・ボタンのどれかを使用して、あるいは、戻ることで、OnNavigatedToイベントは、決定するために使用されます。 sub-Viewは、URI問合せに基づいて、読み込まれます。これは、次のコードで見ることができます。 ViewSwitchingNavigation.Contacts\Views\ContactsView.xaml.csファイルから抜き出されます。
C#
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
{
// Navigating an inner region based on context
// コンテキストに基づいて、内部の領域を移動します。
// The ContactsView will navigate an inner region based on the
// value of the 'Show' query parameter. If the value is 'Avatars'
// we will navigate to the avatar view otherwise we'll use the details view.
// ContactsViewは、『Show』問合せパラメータの値に基づいて、内部の領域を移動します。
// 値が『Avatars』である場合、私たちは、それ以外の場合に、アバターViewに移動します。
// 私たちは、詳細ビューを使用します。
NavigationParameters parameters = navigationContext.Parameters;
if (parameters != null && string.Equals(parameters[ShowParameterName].ToString(), AvatarsValue))
{
regionManager.RequestNavigate(ContactsRegionNames.ContactDetailsRegion, new Uri(ContactAvatarViewName, UriKind.Relative));
}
else
{
regionManager.RequestNavigate(ContactsRegionNames.ContactDetailsRegion, new Uri(ContactDetailViewName, UriKind.Relative));
}
}
前述のコードで、Viewは、URI問合せのShowパラメータの値に依存して、連絡先Viewの内部の領域に読み込まれます。
最初に行う場合、あなたは、これらのViewのいずれかに移動します。指定されたViewは、NavigationServiceによって作成されるでしょう。
Emailモジュール
The Email Module
E-mail機能は、Viewにナビゲーションを実演します。それは、ユーザー活動に基づいて、追加のナビゲーションを処理します。 このモジュールのView Modelは、ナビゲーションに関与するために、INavigationAwareインターフェイスを実装します。
Emailモジュールでは、ほとんどの操作は、View Modelで実行されます。このモジュールは、3つのViewで構成されます。: メール・リスト(InboxView View)、開いたメール(EmailView View)、そして、 メールの作成(ComposeEmailView View)次のコード例は、メソッドを示します。 それは、New、Reply、Openボタン動作を操作します。それらが、まさしく今、クエリ文字列を作成することに注意します。 そして、その次に、中心となる領域内の、対応するViewに移動します。
C#
private void ComposeMessage(object ignored)
{
this.regionManager.RequestNavigate(RegionNames.MainContentRegion, ComposeEmailViewUri);
}
private void ReplyMessage(object ignored)
{
var currentEmail = this.Messages.CurrentItem as EmailDocument;
if (currentEmail != null)
{
var parameters = new NavigationParameters();
parameters.Add(ReplyToKey, currentEmail.Id.ToString("N")); this.regionManager.RequestNavigate(RegionNames.MainContentRegion, ComposeEmailViewKey + parameters);
}
}
private bool CanReplyMessage(object ignored)
{
return this.Messages.CurrentItem != null;
}
private void OpenMessage(EmailDocument document)
{
NavigationParameters parameters = new NavigationParameters();
parameters.Add(EmailIdKey, document.Id.ToString("N")); this.regionManager.RequestNavigate(RegionNames.MainContentRegion, new Uri(EmailViewKey + parameters, UriKind.Relative));
ComposeEmailViewModelは、ViewやView Modelが、移動されることを扱うかどうかに関係なく、 決定するために使用されるIConfirmNavigationRequestインターフェイスを実装しています。 このインターフェイスは、ConfirmNavigationRequestメソッドを持っています。 それは、ナビゲーション要求の取消しを提供します。構成される電子メール画面では、 ユーザーは、メッセージを記述し始めますが、送信しないかもしれません。 その結果、ユーザーは、彼/彼女が、離れて移動する前に、メッセージを破棄することを望むか、確認を促す必要があります。 次のコードは、ComposeEmailViewModelクラスに、ConfirmNavigationRequestメソッドの実装を示します。 View Modelは、ユーザーを促すために、InteractionRequestを使用します。 そして、ユーザーが確認する場合、continuationCallbackが、パラメータとして渡されるとき、 彼/彼女が、離れて移動することを望むために、移動を継続します。
備考
あなたは、continuationCallback動作を呼び出す必要があります。 あるいは、あなたは、この現在のナビゲーション要求を停止させるでしょう。そして、この要求の更なる処理は行われません。
ComposeEmailViewModelクラスでは、ユーザーが、新しい電子メール・メッセージを作成する、 あるいは、既存のものに返信する場合、OnNavigatedToメソッドは、決定するために使用されます。 ナビゲーション・コンテキストは、Parametersプロパティを通して、コンテクストの情報を提供します。 それは、RequestNavigateメソッド、あるいは、ナビゲーションURIを通じて、渡されるパラメータから、構築されるstring/object辞書です。 次のコードの例では、ReplyToパラメータが、値を含む場合、電子メール・サービスからの関連情報は、応答値を埋め込むために取得されます。 そうでない場合、空の電子メールが表示されます。
C#
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
{
var emailDocument = new EmailDocument();
var parameters = navigationContext.Parameters;
var replyTo = parameters[ReplyToParameterKey];
Guid replyToId;
if (replyTo != null && Guid.TryParse(replyTo, out replyToId))
{
var replyToEmail = this.emailService.GetEmailDocument(replyToId);
if (replyToEmail != null)
{
emailDocument.To = replyToEmail.From;
emailDocument.Subject = Resources.ResponseMessagePrefix + replyToEmail.Subject;
emailDocument.Text =
Environment.NewLine +
replyToEmail.Text
.Split(Environment.NewLine.ToCharArray())
.Select(l => l.Length > 0 ? Resources.ResponseLinePrefix + l : l)
.Aggregate((l1, l2) => l1 + Environment.NewLine + l2);
}
}
else
{
var to = parameters[ToParameterKey];
if (to != null)
{
emailDocument.To = to;
}
}
this.EmailDocument = emailDocument;
this.navigationJournal = navigationContext.NavigationService.Journal;
}
ナビゲーションの履歴は、前述のコードの終わりに、インスタンスを生成することに注意します。 履歴は、先程のViewに移動するために使用されます。 履歴は、移動する履歴の後方に移動することのために、GoBackメソッドを提供します。 これは、ユーザーが、作成した電子メール・メッセージを送信、あるいは、キャンセルしたあと、使用されます。 あなたは、次のコード例の、このメソッドの使用状況を確認することができます。
C#
private void CancelEmail()
{
if (this.navigationJournal != null)
{
this.navigationJournal.GoBack();
}
}
ユニットと受け入れテスト
Unit and Acceptance Tests
ビューの切り替えナビゲーションのQuickStartには、ソリューション内のユニット・テストが含まれています。 ソース・コードのそれぞれの単位が、予想通りに動作する場合、ユニット・テストは、検証します。
ビュー切り替えナビゲーションのクイックスタートユニット・テストを実行するために、
To run the View-Switching Navigation QuickStart unit tests
- ソリューションを構築します。
- Test Explorerを開きます。
- ソリューションを構築した後、Visual Studioは、テストを捜し出します。 ユニット・テストを実行するために、Run Allボタンをクリックします。
ビューの切り替えナビゲーションのQuickStartには、受入検査が含まれている分離したソリューションが含まれています。 あなたが、処方された連続の手順に従うとき、受入検査では、アプリケーションが、どのように動作する必要があるかを説明します。 あなたは、さまざまな使い方をする、アプリケーションの機能の挙動を調べるために、受入検査を使用することができます。
ビュー切り替えナビゲーションのクイックスタートの受入検査を実行します。
To run the View-Switching Navigation QuickStart acceptance tests
- Visual Studioでは、ソリューション・ファイルQuickStarts\View-Switching Navigation_Desktop\ViewSwitchingNavigation.Tests.AcceptanceTest\ViewSwitching Navigation.Tests.AcceptanceTest.slnを開きます。
- ソリューションを構築します。
- Test Explorerを開きます。
- ソリューションを構築した後、Visual Studioは、テストを捜し出します。受入検査を実行するために、Run Allボタンをクリックします。
結論
Outcome
あなたは、ウィンドウのQuickStartを参照する必要があります。 そして、テストは、自動的に、アプリケーションと相互作用します。 テスト実行の終了時に、あなたは、すべてのテストが渡されたことを確かめる必要があります。
詳細情報
More Information
Prismのナビゲーションの他の測面について学ぶために、次のトピックを参照してください。:
Prismに含まれる、他のコードサンプルについて学ぶためには、次のトピックを参照してください。: