0

WPFアプリでMVVMLightからのメッセージングを使用してChildWindowを表示し、そこからいくつかの値を返すにはどうすればよいですか?私が必要としているのは、2つの日付ピッカーを備えたモーダルダイアログと、他のビューへのパラメーターとして使用するためのこれら2つの値を何らかの方法で返すメッセージをユーザーに提示することです。出来ますか ?

4

1 に答える 1

0

通常、私はPopupこのようなものに a を使用します。

Popup通常、 は のプロパティのようなものにバインドさVisibilityれており、Popupは通常、ViewModel の一部でもあります。IsPopupVisibleViewModelDataContext

私は 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 に答える