|
XAF的消息框显示是依赖于Win或是Web的, 所以在 Module 一层中无法直接呼叫消息对话框, 但有时我们又需要, 比如某个Module的业务逻辑实现过程中需要向最终用户展示某些信息时.
这时你可以这样来实现:
首先在 Module 中定义一个类:- public abstract class MyShowMessaging
- {
- private static MyShowMessaging _fMyShowMessaging = null;
- public static void RegisterShowMessageInstance(MyShowMessaging showMessaging)
- {
- _fMyShowMessaging = showMessaging;
- }
- public static string ShowMessage(string message, string caption)
- {
- if (_fMyShowMessaging == null)
- {
- throw new Exception("MyShowMessaging 未注册!");
- }
- return _fMyShowMessaging.ShowInfoMessageCore(message, caption);
- }
- protected abstract string ShowMessageCore(string message, string caption);
- }
复制代码 这样 Module 中就可以直接呼叫 MyShowMessaging.ShoeMessage(string message, string caption) 方法来显示消息.
解下来就是分别为 Win和Web 实现 MyShowMessaging 中的方法, 这里以 WinForm 为例:
在 Module.Win 中新增类:- public class MyWinShowMessaging : MyShowMessaging
- {
- public static void RegisterMyShowMessaging()
- {
- RegisterShowMessageInstance(new MyWinShowMessaging());
- }
- protected override string ShowMessageCore(string message, string caption)
- {
- return WinApplication.Messaging.Show(message, caption,
- System.Windows.Forms.MessageBoxButtons.OK,
- System.Windows.Forms.MessageBoxIcon.Information).ToString();
- }
- }
复制代码 最后在 Win 应用程序中注册 MyShowMessaging 即大功告成.- static void Main(string[] args)
- { MyWinShowMessaging.RegisterMyShowMessaging();
- ......
- }
复制代码 |
评分
-
查看全部评分
|