顯示一個對話框窗口,我有兩個棱鏡模塊。 我想其中的一個註冊窗口,使用「顯示對話框」模式的另一個顯示該窗口。 如何做(如果可以做到)?棱鏡:通過兩個模塊
3
A
回答
1
嘛。我想我通過遵循this tip來解決它。但我不知道這是否是最好的解決方案。
我剛剛創建我的殼牌項目的窗口。這個窗口將會彈出一個對話窗口。
下面是它的代碼:
Popup.xaml:
<Window x:Class="TryERP2.Shell.Views.Popup"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Popup" Height="315" Width="411"
xmlns:prism="http://www.codeplex.com/prism">
<Grid>
<ContentControl x:Name="DialogRegion" Grid.Row="1" prism:RegionManager.RegionName="DialogRegion" />
</Grid>
</Window>
Popup.xaml.cs:
public partial class Popup : Window
{
private static Popup popup;
private Popup(IRegionManager regionManager)
{
InitializeComponent();
RegionManager.SetRegionManager(this, regionManager);
}
//Using the singleton pattern
public static Popup getPopup(IRegionManager regionManager)
{
if (popup == null)
popup = new Popup(regionManager);
return popup;
}
}
最後,當我想顯示對話框(在一個命令,它是在一個模塊中),我只是實例並告知什麼是RegionManager:
private void showDialog()
{
// Acquiring the RegionManager
var regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();
// Getting the Popup object
Popup p = Popup.getPopup(regionManager);
// Looking for the view I want to show in the dialog
var x = new Uri("MyView", UriKind.Relative);
// Changing the view of the DialogRegion (which is within the Popup)
regionManager.RequestNavigate("DialogRegion", x);
// Showing the dialog
p.ShowDialog();
}
1
是的,是可以做到的。這是大概步驟:
申報界面這一觀點在「基礎設施」項目
public interface IMyDialogWindow
{
}
[出口]類,你的模塊
[Export(typeof(IMyDialogWindow))]
public class MyClassInModuleA : IMyDialogWindow
{
}
[導入]這個類實現此接口在其他模塊,並使用它的對話框
[Import]
public IMyDialogWindow PropertyInModuleB
相關問題
- 1. 在棱鏡模塊內顯示棱鏡模塊
- 2. 與棱鏡之間的模塊通信?
- 3. 棱鏡,MVVM和模塊化
- 4. 棱鏡依賴模塊
- 5. 棱鏡模塊化實踐
- 6. 棱鏡模塊依賴
- 7. 棱鏡統一容器每個模塊
- 8. 棱鏡+ MEF:延遲棱鏡模塊的服務出口
- 9. 具有多個模塊和模塊的棱鏡取決於
- 10. 棱鏡模塊管理與MvvmCross
- 11. 在棱鏡模塊中更改視圖?
- 12. 棱鏡模塊化重載機制
- 13. 負載棱鏡模塊(在啓動時)
- 14. 棱鏡模塊依賴關係wpf
- 15. 參數傳遞到棱鏡模塊
- 16. 在棱鏡區域顯示模塊
- 17. WPF,MVVM和棱鏡模塊化
- 18. 棱鏡模塊級別異常處理
- 19. 從DLL中加載棱鏡模塊
- 20. 棱鏡控制訪問模塊
- 21. WPF工具欄模塊棱鏡
- 22. 棱鏡模塊化/類型交換
- 23. 棱鏡模塊生命週期
- 24. 傳遞元數據與棱鏡模塊
- 25. 棱鏡模塊中的共享組件
- 26. 棱鏡模塊和數據庫
- 27. 棱鏡wfh通過實體模態爲模態查看
- 28. 使用棱鏡和模塊化的通用視圖
- 29. 棱鏡CompositePresentationEvent閃光兩次
- 30. 帶獨立模塊管理器的加載棱鏡模塊
你可以發佈一些示例代碼?我完全無法理解你的答案。我必須複製另一個項目中的文件?我正在考慮以何種方式將視圖註冊到第一個模塊的IoC容器中,然後「讀取」並在第二個模塊上顯示。 – 2012-01-18 01:01:40
您必須通過可以放置在「基礎設施」模塊中的接口「粘合」ModuleA和ModuleB。通過這種方式,ModuleB將能夠在不知道它的情況下從ModuleA導入窗口。 – katit 2012-01-18 01:31:22
謝謝。它是否可以與Unity一起使用? – 2012-01-18 12:14:29