WPFアプリでMVVMLightからのメッセージングを使用してChildWindowを表示し、そこからいくつかの値を返すにはどうすればよいですか?私が必要としているのは、2つの日付ピッカーを備えたモーダルダイアログと、他のビューへのパラメーターとして使用するためのこれら2つの値を何らかの方法で返すメッセージをユーザーに提示することです。出来ますか ?
質問する
1102 次
1 に答える
0
通常、私はPopup
このようなものに a を使用します。
Popup
通常、 は のプロパティのようなものにバインドさVisibility
れており、Popupは通常、ViewModel の一部でもあります。IsPopupVisible
ViewModel
DataContext
私は WPF の既定のコントロールの大ファンではないので、興味がある場合は、ここ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 に答える