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

时间:2014-12-08 17:53:47

标签: c# properties

我试图在属性的值发生变化时使用属性来启用或禁用按钮。

例如:

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;

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

1 个答案:

答案 0 :(得分:3)

首先,我会先做突变:

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

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

无论如何,我会做以下其中一项来初始化状态:

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

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

  3. 您发布的作业可以正常使用,但不能很好地阅读,或者具有惯用意义,所以我会避免使用。