質問

を使用していバニラdatepicker"を持つにはSilverlight2.I結合の選択した日付の値がその値に変更は出来かねポップを再生し続けますmessageboxることを確認したい数値を変更します。

しかし不思議な行動ensuesきているから再生し続けますmessagebox直後のdatepicker"を持つの値が変更されます。のdatepicker"を持つのポップアップになり、場合にマウスのカレンダーで選択日付なしでマウスをクリックする.

また、その後発生しうる影響のバインディングすることは出来ませんセットのモデルの物件までのページをリローデッド.

この問題は特定の思いつなぎの例です。を選択日には"OK"を押ししてマウスを移動し、カレンダーを再現。

私の発想-

<Grid x:Name="LayoutRoot">
    <controls:DatePicker x:Name="dpTest" 
                         Height="25" 
                         Width="75" 
                         SelectedDateChanged="DatePicker_SelectedDateChanged" />
</Grid>

マコ-

  Private Sub DatePicker_SelectedDateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
    MessageBox.Show("Test Popup")
End Sub

そのアイデアまたは回避策の?

役に立ちましたか?

解決

Hmmを用いたことがすべてではないことも珍しく)を付けています。同僚にバカにした言動を繰り返すのは、た非常に不思議な問題は、Windows Formsがアプリケーションを使った再生し続けますmessageboxに応じて第三者メニューコントロールのクリックイベント前のメニューって解雇された。)

一つの提案と動作しなかった人でもできるようになりましである"押上"の話のディスパッチャ.そのようにおSelectedDateChangedハンドラを返しま メッセージボックスを実際に取得します。

Private Sub DatePicker_SelectedDateChanged( ... )

    ' Unfortunately my VB is rusty '
    ' I believe this is the correct syntax. '
    Dispatcher.BeginInvoke(AddressOf ShowDateMessage)

    ' At this point, the message box has *not* been shown '
    ' It will be shown once control returns to the dispatcher '

End Sub

Private Sub ShowDateMessage()

    ' By this point, the DatePicker popup should be closed '
    ' so hopefully the issues you are seeing would be avoided '
    MessageBox.Show("Test Popup")

End Sub

カップルでの注意点についてのもの:

  • 再生し続けますmessagebox.ショーはSilverlightでは唯一の方法を作るモーダルダイアログを表示します。なWindows形式のメッセージループは、Silverlight UIのスレッドが停まで戻ります。
  • イベントで、日程が変更になりませんか良い方法で確認します。A cursory見のドキュメントがありませんが対応する"変化"を開催いたします。
  • 状況によって、いえるかもしれませんより良いオフChildWindowの代わりに再生し続けますmessagebox.これはないのだ課題に記載のな定されていたことを踏まえれば、モーダルダイアログです。

他のヒント

私はブログの回避策 HERE 仕事の流れを変更することにより、メッセージボックスが不要にすること。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top