我有一个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();
}
}
抛出无法引用的空引用异常。我需要用什么代码来关闭用户控件?
答案 0 :(得分:1)
使用Messaging Service。使用此功能,您可以在ViewModel中关闭窗口,因此无需在Backend中提供关闭功能。将Command属性添加到Cancel按钮
<Button Content="Cancel" Command="{Binding CancelCommand}"/>
现在在ViewModel中添加RelayCommand属性添加
Messenger.Default.Send<bool>(true, typeof(XViewModel));
现在在此userControl的BackEnd中,在构造函数中添加以下内容。
Messenger.Default.Register<bool>(this, typeof(ScheduleViewModel), (b) =>
{
if (b == true)
{
this.DialogResult = true;
}
});
现在你可以关闭窗口...... 这肯定有助于你...