• 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     }
    365个夜晚,我希望做到两天更一篇博客。加油,小白!
  • 相关阅读:
    关于排序算法的记录
    java获取src下文件
    学习HashMap的笔记
    红黑树删除
    学习红黑树过程中的个人总结
    关于二叉树的记录
    关于自动装箱和自动拆箱
    学习函数的时候问题
    Oracle 实现拆分列数据的split()方法
    福大软工 · 最终作业
  • 原文地址:https://www.cnblogs.com/qq2806933146xiaobai/p/14030216.html
Copyright © 2020-2023  润新知