2011-03-01 3 views
0

내 응용 프로그램에서 다른 컨트롤은 특정 개체의 속성 값에 따라 사용됩니다. 폼 생성자는이 객체를 매개 변수로 사용합니다.C# 일부 컨트롤에 종속적 인 폼을 구현하는 방법은 무엇입니까?

양식에는 특정 개체의 속성이 설정 되더라도 항상 기본 기능이 있습니다.

가 지금은 이런 일이 : 현재

if(myObject.SomeProperty) 
{ 
    myControl.Visible = true; 
    myOtherControl.Visible = false; 
    // and so on 
} 

SomeProperty의 의존 컨트롤은 버튼과 탭 항목은 다음과 같습니다. 그러나 앞으로는 다른 컨트롤이 폼에 추가되고 또한 SomeProperty에 종속된다는 것을 알 수 있습니다.

당신이 생각하기에, 나는 이것을 올바른 방법으로 설정하고 싶습니다. 하지만 정확히 어떻게 알지는 못합니다. 어떻게 구현할 것인가?

답변

1

.
1. 데이터 바인딩은 여러 컨트롤의 상태 (visibilit 또는 다른 속성)를 다른 개체에 의존 할 때 관리 할 때 훌륭한 솔루션 중 하나입니다. 이 상세 내역에 대한 추가 정보 question
2. 주 조합이 최대 2 ~ 4 건으로 제한되는 경우 다른 기능을 작성할 수 있습니다. 당신이 의존하는 객체에 따라 상태를 설정하는 메소드에 대해서도 여전히 그럴 수 있습니다. Ex : Basic_Editing, Advaced_Editing, Custom_Editiong 등
3. 케이스의 수가 제한된 경우 여러 폼 (사용자 정의 컨트롤)을 만들고 종속 속성 (또는 사용자가 말하는 대상)의 상태에 따라 필요할 때로드 할 수 있습니다. .

단지의 당신은 나중에 추론 할 수 1. 있도록 유지, 또는 이해, 논리적으로 그룹 상태하도록 코드 어렵게 다른 경우의 무리를 가지고, 2.Someone 다른 이해하는 이유/논리 3.변경이 필요한 경우 수정 및 테스트 시간을 줄이는 이러한 모듈 방식 (기술) 중 하나로 현지화 할 수 있습니다.

0

나는 폼 생성자에서 이런 식으로 할 것 :

myControl.Visible = myObject.SomeProperty && !myObject.SomeOtherProperty; 
myOtherControl.Visible = !myObject.SomeProperty; 
.... 

가 적은 코드 그것을인가하고 빠르게 변화.

또는

동적 객체의 속성을 기반으로 각 양식보기에 대한 런타임에 컨트롤을 생성합니다 별도의 함수를 만들 수 있습니다.

0

먼저 가시성을 켜고 끌 수 있음을 알 수 있습니다. 즉, 항상 매번 양식에서 컨트롤을 사용한다는 의미입니다. 따라서 좋은 연습이 아니라 필요할 때만 컨트롤을 만듭니다.

Initialize()과 같이 function과 같은 특정 컨트롤을 표시할지 여부를 확인하기위한 코드가 모두 포함 된 다음 양식을 만들어 Forms 컨트롤 컬렉션에 추가 할 수 있습니다. 나중에 새 컨트롤이 추가되면 업데이트 할 함수가 하나 있습니다. 시나리오 당신이 당신이 자세한 내용을 제공 할 수 있는지

보다 정확한

을 부여 할 수 당신은 당신에게 가장 적합한을 선택할 수 있습니다 나는이를 해결하려면 상황에 따라 생각할 수있는 여러 가지 방법이 있습니다

관련 문제