我有一个 silverlight 应用程序,我最近将它们拆分为单独的 xap 文件。
意图是这样的。有一个 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();
}
}
(在我将它们拆分为单独的 xap 之前,所有这些 UI 都可以正常工作。我们有充分的理由将它们拆分)
任何帮助将不胜感激
更新
我尝试按照示例链接进行操作,并且能够从单独的 xap 文件中启动第二个 UI,其中包含数据库中的所有信息。
现在我似乎遇到了一个新问题。当我在第二个 UI 上取消时,我是否必须从目录中卸载调用 removeXap 的第二个 xap?当我这样做时,我得到组合保持不变错误。
1) 部分 'xapfile2.Views.MyView' 上的不可重组导入 'xapfile2.Views.ViewModel (ContractName="MyViewModel")' 阻止了导出的更改。有任何想法吗?。
谢谢K