【发布时间】:2012-04-02 12:17:53
【问题描述】:
我正在使用 Caliburn 框架在 WPF 中重写一个项目。我来自 C++ 世界,所以即使是最简单的事情也有一些困难......
所以,假设我有:MainView、MainViewModel、DialogView、DialogViewModel。
在 MainView.xaml 中: ...
<MenuItem Name="Dialog" Header="Dialog"></MenuItem>
... Caliburn 将其绑定到 MainViewModel 中的一个方法:
public void Dialog()
{
dynamic settings = new ExpandoObject();
settings.WindowStartupLocation = WindowStartupLocation.Manual;
_windowManager.ShowWindow(new DialogViewModel(_windowManager), null, settings);
}
它工作正常,对话框弹出。
现在,在这个对话框中我有:
<TextBox Name="Dimension1"/>
<TextBox Name="Dimension2"/>
另外,其他文本框、复选框等。 然后是确定和取消按钮:
<Button Content="OK" Name="OK"></Button>
<Button Content="Cancel" Name "Cancel"></Button>
现在,就像现在它们绑定到 DialogViewModel 中的 OK() 和 Cancel() 方法一样,我无法弄清楚或找到有关如何在 DialogViewModel 中处理它们的信息。
我在创建 DialogResultsAction 类时找到了一个示例,我可以将我的 OK/Cancel 按钮与此类中的方法绑定,但无法理解如何进一步进行......
你能告诉我应该往哪个方向走吗?
【问题讨论】:
-
您看过 Caliburn micro 附带的样本吗?如果你不使用 micro,你可能想看看它。
-
我正在使用 Micro。将调查样品。你能推荐一个具体的吗?
-
我正在研究 HelloWindowManager - 当用户单击对话框中的特定按钮时,它会将按钮的数据上下文传递给 ViewModel。在我的情况下,我在一个对话框中有大约 20 个文本框、复选框、单选按钮,我应该将它们全部作为参数传递给 ViewModel 还是有更优雅的方法来做到这一点?
-
添加了一个例子。如果这不是你的意思,请告诉我。
-
不,Caliburn 绑定系统是从我的 ViewModel 到 Dialog 完成的。但我正在尝试使用 OK 或 Cancel 按钮将参数从对话框传递到 viewModel...
标签: c# wpf button mvvm caliburn