ビュー モデルにリソース ディクショナリ XAML ファイルを読み込もうとしています。それをインスタンス化することができ、それを呼び出してもすぐにエラーは発生しませんが、制御が UI に戻った後、「COM コンポーネントへの呼び出しからエラー HRESULT E_FAIL が返されました」というエラー ポップアップが表示されます。
私は次のことをしています:
- ResourceDictionary ファイルは、Silverlight アプリケーションのルート フォルダーの場所
ViewModelsResources.xamlにあります。MyApp/ViewModelsMyApp ViewModelsResources.xamlビルド アクション:Content、出力ディレクトリにコピー:Copy always、カスタム ツール:とマークされています。MSBuild:Compile- ResourceDictionary オブジェクトがインスタンス化されます (このコードは、リソース ディクショナリ ファイルと同じフォルダー内のクラスにあります)。
ResourceDictionary VMResources = new ResourceDictionary() { Source = new Uri("/ViewModels/ViewModelsResources.xaml", UriKind.Relative) }; - オブジェクトは、x:Key 値に基づくインデックスを介して参照されます
Template1 = VMResources["myTemplate"] as ControlTemplate;(上記のコード サンプルと同じクラス) 。
デバッグは、 と に適切な値が割り当てられていることを示していVMResourcesますTemplate1。なぜこれが COM コンポーネントに関するエラーをスローするのかはわかりませんが、この ResourceDictionary が参照されるときにそれを分離しました。参照している行を取り出してVMResources[x]もエラーはありません。どんな助けでも大歓迎です。