Как закрыть пользовательский элемент управления, используемый при фильтрации Radgrid? - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть 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();            
    }
}

Это исключение nullreference, которое, очевидно, наступит.Какой код мне нужно поставить, чтобы закрыть пользовательский элемент управления?

1 Ответ

1 голос
/ 28 февраля 2012

использовать службу сообщений.При этом вы можете закрыть окно во ViewModel, поэтому нет необходимости давать функцию закрытия в Backend.Свойство Add Command для кнопки Cancel

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

Теперь в ViewModel добавьте свойство RelayCommand в это добавление

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

Теперь в BackEnd этого userControl добавлено следующее в конструктор.

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

Теперь вы можете закрыть окно ... Это, безусловно, поможет вам ...

...