2011-03-18 5 views
0

내가 작업하고있는 응용 프로그램에는 GUI 필드간에 많은 의존성이 있습니다. 예를 들어 사용자가 텍스트 상자에서 값을 변경하면 양식의 다른 컨트롤이 새 값을 기준으로 변경되어야하므로 폼의 다른 변경이 트리거 될 수도 있고 트리거되지 않을 수도 있습니다. 이러한 관계는 임의로 복잡해질 수 있으며 사용자 요구 사항은 자주 변경됩니다.winforms에서 계단식 GUI 변경 사항을 관리하는 방법은 무엇입니까?

비즈니스 로직을 컨트롤러로 분리하기 위해 MVC와 같은 패턴이 있다는 것을 알고 있지만, 복잡 해지는 논리 자체이기 때문에 해결하려고하는 문제가 다르다고 생각합니다. 관계는 각 GUI 컨트롤이 노드가되는 유향 그래프로 모델링 될 수 있습니다. 이것이 올바른 접근 방법인지 궁금 해서요. 그리고 내 자신을 굴리기 전에 거기에 프레임 워크가 있는지 궁금합니다.

+0

귀하의 질문을 다시 : 'Logic을 캡슐화하고 변경 데이터를 기반으로 GUI를 업데이트하려면 외부 [thing]을 원합니다.' 그 질문에 대한 대답은 MVC 프레임 워크가 무엇인지, 아니면 아래의 Gnostus의 제안입니다. –

+0

나는 그것을 원하지 않는다. 개체 상태 간의 종속성을 처리 할 외부 개체가 필요합니다. 나는 GUI를 전혀 언급하지 말았어야했다. 내가 찾는 것에 대한 구체적인 사례 일뿐입니다. – kliao

답변

0

'모양 모델'을 사용하여 컨트롤러가 해당 모델의 상태를 업데이트하고보기가 모양 모델 만 기반으로 업데이트됩니다.

MyAppModel.MyControl.Readonly = true; 

뷰의 컨트롤 읽기 전용 속성에 바인딩됩니다.

그래서 이제는 어떤 상태에서이 상태를 켜거나 끌 수있어보기를 바꿀 수 있습니다.

+0

그건 꽤 영리합니다. 그러나 MVC를 사용하는 방법보다는 GUI에서 이벤트 전파를 관리하는 방법을 파악하려고하기 때문에 제 질문이 명확하지 않을 수도 있습니다. – kliao

+1

그런 의미에서 GUI를 똑똑하게 만들지 말고 컨트롤러로 추출하는 것이 좋습니다.하지만 Reactive Framework를 방금 채택한 것처럼 추천 할 수 있으며 Linq에 익숙하다면 이벤트 관리와 함께 기적을 일으킬 수 있습니다. –

관련 문제