繁体   English   中英

如何在不改变其值的情况下运行属性集?

[英]How to run a property's set without changing its value?

我试图使用属性来启用或禁用属性的值更改时按钮。

例如:

string test
        {
            get
            {
                return xmlValue; // Reads a value from an XML file
            }
            set
            {
                if (xmlValue == null)
                {
                    button1.Enabled = false;
                }
                else
                {
                    button1.Enabled = true;
                }

                xmlValue = value; // Writes the value to an XML file
            }
        }

现在这个工作正常,除了在启动时。 在调用set之前,始终会启用该按钮。

我试过这个:

test = test;

它似乎工作正常。 但这是正确的方法吗?

首先,我会先做突变:

xmlValue = value; // Writes the value to an XML file

if (xmlValue == null)
{
   button1.Enabled = false;
}
else
{
   button1.Enabled = true;
}

无论如何,我会执行以下操作之一来初始化状态:

  1. 在构造函数中,写test = null即使它已经处于该状态,至少你是显式初始化它而不是将它分配给它自己。

  2. 只需在designer / XAML中将button1.Enabled设置为false即可。 初始属性值应反映程序的正确初始状态。

您发布的作业将起作用,但读取不好或具有惯用意义,所以我会避免它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM