2012-02-27 11 views
0

私はradgridを持っています、私はフィルタリングのためのカスタムユーザコントロールを作成しました。ユーザーコントロールを閉じるために閉じるボタンを作成する必要があります。私が呼ぶことができる緊密な出来事はありません。私は視界を崩壊させたくありません。私は以下のようなものから始めました:radgridフィルタリングで使用されるユーザコントロールを閉じる方法は?

public partial class DateFilterControl : UserControl, IFilteringControl 
{ 
    public event CloseEventHandler Close; 
    public delegate void CloseEventHandler(); 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     this.Close();    
    } 
} 

これは明らかです。ユーザーコントロールを閉じるにはどのようなコードを入力する必要がありますか?

答えて

1

メッセージングサービスを使用します。これにより、ViewModelのウィンドウを閉じることができるので、バックエンドでclose関数を指定する必要はありません。そのこのユーザーコントロールのバックエンドで今

Messenger.Default.Send<bool>(true, typeof(XViewModel)); 

を追加でRelayCommandプロパティを追加ViewModelにに今ボタン

<Button Content="Cancel" Command="{Binding CancelCommand}"/> 

をキャンセルするには、コマンドプロパティを追加し、コンストラクタで次のように追加します。

Messenger.Default.Register<bool>(this, typeof(ScheduleViewModel), (b) => 
             { 
              if (b == true) 
              { 
               this.DialogResult = true; 
              } 
             }); 

今uはウィンドウを閉じることができます... これはきっと... idea..workedため

+0

THXをuのを助けます –

関連する問題