MVVM Cross を使用して WinRT/WP8 アプリを構築しています。要件の 1 つは、ユーザーが画像をアップロードできるようにすることです。メイン アプリケーションに関する限り、「画像」はメタデータを含む単なるバイト配列です。実際にどこから来たのかは問題ではありません。私が持っているもの (これまでのところ、WinRT の場合、まだ電話をまったく実装していません) は、GetBytes メソッドと 2 つの実装 (LivePicture と FileSystem) を備えた "IPictureSource" インターフェイスです。それぞれが画像を取得/検索するために必要なことを行い、必要な形式で返します。
UIレイヤーがデバイスの機能をスニッフィングし、カメラが利用できない場合にのみファイルシステムを許可するため、アプリは現時点では少し不格好です
私がやりたいことは、これらを少し抽象化することです。おそらく、2 つの子ビューモデルを持ちます。1 つはカメラ専用 (利用可能な場合はそれ自体を有効にします)、もう 1 つはファイルシステム用、またはデバイスに複数のカメラがある場合はコレクションです。ユーザーに最大限の選択肢を提供します。
いずれにせよ、適切なデータを返すことができる画像のソースが複数ある設計が必要です。
昔は、IPictureSource で「PictureTaken」イベントを公開し、親から子オブジェクトを循環させ、各イベントを登録し、共通のハンドラーを介してそれらを処理していました。
なぜそれがまだ機能しないのかわかりませんが、新しいテクノロジー(特に非同期/待機)を最大限に活用するための少しの余裕があるので、それを行うためのより良い方法、特に1つがあります単体テストできますか?