如何在 am WPF 应用程序中使用来自 MVVM Light 的消息传递来显示 ChildWindow 并从中返回一些值?我需要向用户呈现一个带有 2 个日期选择器的模态对话框和消息以某种方式返回这些 2 个值,以用作其他视图的参数。可能吗 ?
问问题
1102 次
1 回答
0
通常我只是用 aPopup
来做这样的事情。
Popup
通常与 中的属性Visibility
绑定,并且 Popup通常也是 ViewModel 的一部分IsPopupVisible
ViewModel
DataContext
我不是 WPF 默认控件的忠实拥护者,所以如果您有兴趣,我在这里Popup
有我自己的自定义 Popup 控件。
它通常这样使用:
<local:PopupPanel Content="{Binding PopupContent}"
local:PopupPanel.PopupParent="{Binding ElementName=ParentPanel}"
local:PopupPanel.IsPopupVisible="{Binding IsPopupVisible}" />
我是ViewModel
这样展示的:
PopupContent = new SelectDatesViewModel();
IsPopupVisible = true;
一旦SelectDatesViewModel.SaveCommand
触发,您可以向任何感兴趣的 ViewModel 发送一条包含所选日期的消息:
Messenger.Default.Send(new DatesChangedMessage(this.Date1, this.Date2))
实际的弹出内容可以在 XAML 中定义,也可以使用隐式DataTemplate
<DataTemplate DataType="{x:Type local:SelectDatesViewModel}">
<local:SelectDatesView />
</DataTemplate>
于 2012-06-05T13:29:22.530 回答