私は2つのプリズムモジュールを持っています。 "Show Dialog"モードを使用して、1人がウィンドウを登録し、もう1人がこのウィンドウを表示します。 どうすれば完了できますか?プリズム:2つのモジュールを介してダイアログウィンドウを表示
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. Flash 8でダイアログウィンドウを表示
- 2. プリズムにモジュールをロードする2つの方法の違いは何ですか?
- 3. プリズムを使用してタブのヘッダを表示
- 4. は2つのモデルを表示して表示します
- 5. コンポジットWPF(プリズム)モジュールのリソースデータテンプレート
- 6. 利用可能な場合、プリズム領域にモジュールを表示する
- 7. プリズム+モジュールはWCFをデータアクセス層として使用します
- 8. nodejsと別のモジュールを介してログイン
- 9. 2つのディビジョンを並べて表示
- 10. プリズム4モジュールを.resxファイルでローカライズ
- 11. SQL Joinを使用して2つのテーブルのデータを表示
- 12. Mysqlは2つの列を選択して表示します
- 13. Djangoは2つのオブジェクトを追加して表示します
- 14. バインディングを介して、2つのテキストフィールドにそれぞれテーブルビューの2つの行の日付を表示します。
- 15. 2つのテーブルを結合して詳細を表示
- 16. ListViewを作成して1行に2つのテキストを表示
- 17. 2つのレコードを比較して差異だけを表示
- 18. 2つのAndroidデバイスでオーディオジャックケーブルを介してデータを転送
- 19. 2つのdivを表示して隠すためのファドトーグル
- 20. Xcodeは2つのウィンドウを並べて表示します
- 21. AlertDialogが2つのボタンを表示していない
- 22. 別のビューを介してUIViewController/UIViewを表示
- 23. マウスホバーを介して海底ヒートマップのセルをハイライト表示
- 24. 2つのSQLクエリを介してループphp
- 25. .htaccess node.jsを介してポート番号を表示しない
- 26. SSHを介してスクリプト出力を表示しますか?
- 27. 2つの関数を持つモジュール
- 28. jQueryで2つのモーダルウィンドウを表示
- 29. 2つのUITableViewを表示する
- 30. テスタークラスに2つの配列を表示
サンプルコードを投稿できますか?私はあなたの答えを完全に理解できませんでした。私は他のプロジェクトのファイルを複製する必要がありますか?私は最初のモジュールのIoCコンテナにビューを登録し、それを第2のモジュールに表示して表示する方法で考えていました。 –
「インフラストラクチャー」モジュールに配置できるインターフェースを介してModuleAとModuleBを「接着」する必要があります。これにより、ModuleBはModuleAからウィンドウをインポートすることができます。 – katit
ありがとう。それはUnityと一緒に使えますか? –