VS里DialogResult 表示窗口關(guān)閉后返回一個(gè)窗口的結(jié)果。在程序中一旦設(shè)置DialogResult的值,接下來就會(huì)自動(dòng)執(zhí)行close()的方法,所以沒有必要寫this.close(),并且也沒有必要設(shè)定closing和closed事件,其執(zhí)行順序?yàn)镈ialogResult=true/false->closing事件->closed事件而在調(diào)用對(duì)話框的主程序中建議如下寫法:
Win_Filter win = new Win_Filter();
win.ShowDialog();
result = (bool)win.DialogResult;
if (result==false)
{
Shared_Data.Sub_Info_VM.bDel_Open = bDel_Open;
Shared_Data.Sub_Info_VM.bDel_Limit = bDel_Limit;
}
//dialog
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace JPT_Tester
{
/// <summary>
/// Interaction logic for Win_Filter.xaml
/// </summary>
public partial class Win_Filter : Window
{
public Win_Filter()
{
InitializeComponent();
this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
this.DataContext = Shared_Data.Sub_Info_VM;
}
}
}