【发布时间】:2011-12-19 22:29:11
【问题描述】:
我正在使用 Caliburn Micro Window Manager 来显示一个对话框。我想从对话框中删除最大化和最小化按钮。
如果我查看 Windows 管理器源代码(在 WPF 下),我可以看到第三个参数,它可以让我将设置传递给对话框。我的问题是我不能传递第三个参数——我得到一个错误。这可以在 hello 窗口管理器示例项目中复制。
有什么想法吗?
不知何故,我似乎在引用一个只允许 ShowDialog 2 个参数的 IWindowManager。
这是我想做的,但会导致错误:
var loginViewModel = new LoginViewModel();
WindowManager windowManager = new WindowManager();
Dictionary<string, object> settings = new Dictionary<string, object>();
// add settings here to pass to dialog
windowManager.ShowDialog(loginViewModel, null, settings);
这是显示 3 个参数的 IWindowManager 界面:
public interface IWindowManager
{
/// <summary>
/// Shows a modal dialog for the specified model.
/// </summary>
/// <param name="rootModel">The root model.</param>
/// <param name="context">The context.</param>
/// <param name="settings">The optional dialog settings.</param>
/// <returns>The dialog result.</returns>
bool? ShowDialog(object rootModel, object context = null, IDictionary<string, object> settings = null);
/// <summary>
/// Shows a non-modal window for the specified model.
/// </summary>
/// <param name="rootModel">The root model.</param>
/// <param name="context">The context.</param>
/// <param name="settings">The optional window settings.</param>
void ShowWindow(object rootModel, object context = null, IDictionary<string, object> settings = null);
/// <summary>
/// Shows a popup at the current mouse position.
/// </summary>
/// <param name="rootModel">The root model.</param>
/// <param name="context">The view context.</param>
/// <param name="settings">The optional popup settings.</param>
void ShowPopup(object rootModel, object context = null, IDictionary<string, object> settings = null);
}
【问题讨论】:
-
请展示一些代码,供我们这些不熟悉 Caliburn Micro 实现细节的人使用。 :)
-
已添加代码示例。
标签: wpf caliburn.micro