我有一个silverlight应用程序,我最近将它们分解为单独的xap文件。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();
}
}
(所有这些UI的是工作之前,我把它们分成不同的XAP的。我们有充分的理由分裂他们)
任何帮助将不胜感激
UPDATE
我尝试以下的例子link,并能够从单独的xap文件中使用数据库中的所有信息启动第二个UI。
现在我似乎遇到了新的问题。当我在第二个UI上取消时,是否必须从目录中卸载第二个xap调用removeXap?当我这样做,我得到组成保持不变的错误。
1)部分'xapfile2.Views.MyView'上的不可重新导入'xapfile2.Views.ViewModel(ContractName =“MyViewModel”)'阻止了出口更改。有任何想法吗?。
感谢 ķ
你有没有使用棱镜来加载你的XAP文件模块,你认为?这可能有帮助。 – 2012-01-05 19:21:12
新问题应该是一个新问题。其他人可能会遇到同样的问题,或者会遇到同样的问题并想要搜索。 – foson 2012-01-09 13:40:53