C#模态窗口。如何实现从主视图添加和删除Polinomials的行为

时间:2012-12-27 12:25:39

标签: c# wpf modal-dialog

) 我目前正在开发一个WPF应用程序,其主要功能是在视图中绘制多项式。 所以我的主窗口有一个画布和一个子模态窗口,我可以设置多项式的参数,还有一个列出所有以前的多项式的列表框。当我按下OK按钮时,模态窗口关闭,在主窗口中我的代码如下所示:

        PanelParametros pn = new PanelParametros();
        pn.Owner = this;
        pn.ShowDialog();
        Polynomial p= new Polynomial();

       if (pn.DialogResult == true)
        {

        if (!String.IsNullOrEmpty(pn.boxA.Text))
            {
                valueA = float.Parse(pn.boxA.Text);
            }
       p.setvalueA(valueA); 
       // ..... //
      //Set the rest of parameters to my p object

问题我发现如何在添加新的多项式后立即按OK按钮以及刚刚从ListBox中删除一些多项式时区分。

因为现在按每次按下OK按钮编码的方式我创建了一个多项式对象的实例,有时这不是我想要的。

向世界上所有程序员提前感谢圣诞快乐哈哈!

1 个答案:

答案 0 :(得分:0)

您可以在模态窗体中引入“取消”按钮,并明确检查“pn.DialogResult == DialogResult.OK”以检测实际上是否按下了“确定”。如果通过取消保留模态表单,则主表单中不会发生任何事情。

另一种方法是记住最近显示的多项式,只有在可以检测到某些变化时才重绘。这可以通过计算所有多项式参数的散列和来完成。只有当哈希值发生变化时,重绘才有意义。