0
点赞
收藏
分享

微信扫一扫

WPF-Window.ShowDialog()的HasValue与Value事件(全网目前独一)

WPF中的Window.ShowDialog()打开的窗口中的按钮Close()事件

我经常会使用ShowDialog().Value;这个遇到实现下面的功能时,ShowDialog()出的窗体Close()时,并不能返回值。
错误代码如下:

0 AddDataWay addDataWay = new AddDataWay();
 1 if (addDataWay.ShowDialog().Value)  // 
 2             {
 3                 int selectedWay = addDataWay.SelectWay();
 4                 if (selectedWay == 1)
 5                 {
 6                 }
 7                 else
 8                 {
 9                 }
10             }

对策一,更改为:

0 AddDataWay addDataWay = new AddDataWay();
 1 if (addDataWay.ShowDialog().HasValue)  // 
 2             {
 3                 int selectedWay = addDataWay.SelectWay();
 4                 if (selectedWay == 1)
 5                 {
 6                 }
 7                 else
 8                 {
 9                 }
10             }

对策二,AddDataWay代码中 this.Close();前加入一行 this.DialogResult = true;如下:

1 base.DialogResult = true; //this.Close()

2 base.Close();  //this.DialogResult = true;

补充:C#base和this的区别;

AddDataWay窗口代码:

1 public partial class AddDataWay : DXWindow
 2     {
 3         #region 成员变量
 4         public static int selectedWay=1;  // 选择方式默认云端
 5         #endregion
 6 
 7         public AddDataWay()
 8         {
 9             this.InitializeComponent();
10         }
11 
12         private void DXWindow_Loaded(object sender, RoutedEventArgs e)
13         {
14         }
15 
16         /// <summary>
17         /// 云端-0
18         /// </summary>
19         /// <param name="sender"></param>
20         /// <param name="e"></param>
21         private void ImportFromTheCloud_Click(object sender, RoutedEventArgs e)
22         {
23             selectedWay = 0;
24             this.Close();
25         }
26 
27         /// <summary>
28         /// 本地-1
29         /// </summary>
30         /// <param name="sender"></param>
31         /// <param name="e"></param>
32         private void ImportFromTheLocal_Click(object sender, RoutedEventArgs e)
33         {
34             selectedWay = 1;
35             this.Close();
36         }
37     }

 


举报

相关推荐

0 条评论