1

Windows Phone デザイナーで NullReferenceException を説明するトピックを見つけましたが、これはすべてのプラットフォームで発生し、MvvmCross プラグインとは関係がないため、これは多少異なる問題だと思います。

  1. Designer (VS2012、Store/WP8/WPF アプリ) は、以前のバージョンの MvvmCross で正常に動作します。3.0.6 NuGet パッケージに対応するバージョンをコンパイルしてみましたが、すべてのプラットフォームでデザインタイム モデルが読み込まれていることがわかります。

  2. 最近の MvvmCross バージョンでは、すべてのプラットフォームですべてのデザイナーが NULL 参照例外 (「オブジェクト参照がオブジェクトのインスタンスに設定されていません」) を発生させます。

  3. VS インスタンスをデバッグしようとしても役に立ちませんでした。コール スタックは多くを語らず、そこに MvvmCross コードはありません。

  4. エラーは実際のビュー/ビュー モデルとは関係ありません。ビューからすべてのコントロールを削除できますが、エラーはまだ発生しています。ビュー モデル コンストラクター コードに到達することはありません。

そのため、設計時に実行に失敗した MvvmCross コード (MvxView からではない) がいくつかあるようです。これは既知の問題なのか、および/またはデザイナーの仕事を得るための回避策があるのだろうか.

アップデート。問題を再現する手順を記載した GitHub の問題を作成しました: https://github.com/slodge/MvvmCross/issues/347

4

1 に答える 1

2

この質問は GitHub に移動し、多くの議論といくつかのサンプルがありました - https://github.com/slodge/MvvmCross/issues/347

これらのサンプルから、Nuget リリース 3.0.8.1 を結論付けたと思います。

  1. Blend で生成された XML データ ファイルに基づく時間データをサポート
  2. 単純な C# クラスに基づく設計時データをサポート
  3. MvxViewModelデータが MvvmCrossを基本クラスとして使用する設計時データをサポートしません

開発者が 3 番目のことを行う必要があるかどうかは完全には明らかではありませんが (設計時のデータは実際のデータではありませんか?)、全体的な MvvmCross マニフェストは、大まかに言うと、開発者を可能にし、選択を可能にすることを目的としているため、将来の MvvmCross はこれは将来的にはより簡単になります。


それまでの間、設計時にオブジェクトを初期化したい場合は、これを可能にするヘルパー クラスがいくつかあります。

たとえば、カラー プラグイン (および MvvmCross IoC の一部) は、以下を使用して設計時環境で使用できるようにすることができますMvxColorDesignTimeHelper

于 2013-07-12T10:24:42.697 に答える