我有一個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