0

私は Windows ユニバーサル アプリを開発していますが、ビューの 1 つで DesignTime データを使用しようとしています。私のViewModelでは、実際のデータまたはダミーデータをロードするための条件を作成しました:

if(IsInDesignModeStatic || IsInDesignMode)
{
    var service = new DummyService()

    this.Data = await service.GetInformation(null, null);
}

私はmvvmLightを使用しています。サービスの GetInformation メソッドは、プロジェクト フォルダーにある json ファイルからデータをロードする必要があります。「StorageFile.GetFileFromApplicationUriAsync(dataUri);」でファイルを読み込んでみました。通常の「File.ReadAllText」を介して。どちらの場合も、デザイナーは「FileNotFoundException」をスローします。

また、Visual Studio の別のインスタンスを使用してデザイン時のビュー モデルをデバッグしようとしましたが、どのパスを使用すればよいかわかりません。デザイナーが別のプロセス (XDesProc) で実行されていることはわかっていますが、XDesProc がファイル パスを見つけられるように、ファイル パスをどのように表示する必要があるかわかりません。

では、設計時データのコードでファイルをロードするにはどうすればよいでしょうか?

4

1 に答える 1

0

設計時のデータについては、ハードコードされた値を使用することをお勧めします。この記事を見てください(uwpに固有のものではありませんが、すべてがあなたのケースに当てはまります:)

https://msdn.microsoft.com/en-us/magazine/dn169081.aspx

特にこの部分:

ただし、一部の操作 (たとえば、特定の複雑なマルチスレッド操作やアプリケーションのアセンブリへの相対パスを使用する操作) では、内部例外が発生する可能性があります。

記事のように静的データを使用し、凝ったものにしたい場合は、SimpleIoc を使用して設計時データと実行時データを切り替えます。

于 2015-11-03T14:35:47.283 に答える