C# 4.0 如何关闭radgrid过滤中使用的用户控件?
我有一个radgrid,对于date列,我创建了一个用于过滤的自定义用户控件。我需要创建一个关闭按钮来关闭用户控件。没有我可以称之为结束的事件。我不想让可见性崩溃。我从以下内容开始:C# 4.0 如何关闭radgrid过滤中使用的用户控件?,c#-4.0,silverlight-4.0,telerik-grid,C# 4.0,Silverlight 4.0,Telerik Grid,我有一个radgrid,对于date列,我创建了一个用于过滤的自定义用户控件。我需要创建一个关闭按钮来关闭用户控件。没有我可以称之为结束的事件。我不想让可见性崩溃。我从以下内容开始: public partial class DateFilterControl : UserControl, IFilteringControl { public event CloseEventHandler Close; public delegate void CloseEventHandler
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异常。我需要输入什么代码来关闭用户控件?使用消息服务。使用此选项,您可以关闭ViewModel中的窗口,因此不需要在后端提供关闭功能。将命令属性添加到“取消”按钮
<Button Content="Cancel" Command="{Binding CancelCommand}"/>
现在在ViewModel中,在该add中添加RelayCommand属性
Messenger.Default.Send<bool>(true, typeof(XViewModel));
Messenger.Default.Send(true,typeof(XViewModel));
现在,在这个userControl的后端,在构造函数中添加了以下内容
Messenger.Default.Register<bool>(this, typeof(ScheduleViewModel), (b) =>
{
if (b == true)
{
this.DialogResult = true;
}
});
Messenger.Default.Register(此,类型为(ScheduleViewModel),(b)=>
{
如果(b==true)
{
this.DialogResult=true;
}
});
现在你可以关上窗户了。。。
这肯定会帮助你