2014-12-08 3 views
1

속성 값을 변경할 때마다 속성을 사용하여 단추를 사용하거나 사용하지 않도록 설정하려고합니다. 예를 들어값을 변경하지 않고 속성 집합을 실행하는 방법?

:

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; 

그리고 확인을 작동하는 것 같다 :

나는이 시도. 그러나 이것이 이것을하는 올바른 방법입니까?

+0

이 일치하려면 상태가 변경된 후에 논리를 이동하십시오. 'xmlValue = value'를 먼저 수행하십시오. –

답변

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로 설정하면됩니다. 초기 속성 값은 프로그램의 올바른 초기 상태를 반영해야합니다.

게시 한 과제는 제대로 작동하지 않지만 잘 읽지 못하거나 관용적 인 의미를 가지므로이를 피할 것입니다.

관련 문제