最近、それらを個別の xap ファイルに分割した Silverlight アプリケーションがあります。
意図はこうです。ユーザーからいくつかの入力を受け取り、それをデータベースに永続化する xap ファイル 1 があります。ユーザーがこの UI のボタンをクリックすると (xap ファイル 1 から)、xap ファイル 2 が読み込まれ、追加の入力が要求されてデータベースに保存されます。
xap ファイル 1 から xap ファイル 2 を呼び出すことはできましたが、UI はデータベースから情報を取得できないようです (UI は以前の UI によって保持されていたものを示しています)。ユーザーの入力。xapファイル2は、どこにどのように永続化するかをどういうわけか伝える必要があることに気づきました。
これは、xapファイルをロードする方法です2
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(OpenReadCompleted);
Uri uri = new Uri("xapfile2.xap", UriKind.Relative);
wc.OpenReadAsync(uri);
private void OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
Uri uri = new Uri("xapfile2.dll", UriKind.Relative);
StreamResourceInfo resource_stream = App.GetResourceStream(new StreamResourceInfo(e.Result, null), uri);
AssemblyPart part = new AssemblyPart();
Assembly assembly = part.Load(resource_stream.Stream);
UIElement control = assembly.CreateInstance("xapfile2.Window") as UIElement;
if (control != null)
{
RadWindow window = (RadWindow)control;
window.ShowDialog();
}
}
(この UI はすべて、個別の xap に分割する前は機能していました。分割するのには十分な理由がありました)
どんな助けでも大歓迎です
アップデート
サンプルリンクをたどってみましたが、データベースからのすべての情報を使用して、別の xap ファイルから 2 番目の UI を起動できました。
今、私は新しい問題にぶつかったようです。2 番目の UI でキャンセルを行う場合、removeXap を呼び出す 2 番目の xap をカタログからアンロードする必要がありますか? そうすると、コンポジションが変更されていないというエラーが表示されます。
1) 部分 'xapfile2.Views.MyView' の再構成不可能なインポート 'xapfile2.Views.ViewModel (ContractName="MyViewModel")' によって防止されたエクスポートの変更。何か案は?。
ありがとうK