2011-03-31 6 views
2

난 그냥 WPF의 사용자 정의 컨트롤에 대한이 질문을 제기하고 싶다. 난 그냥 대신 하나의 WPF 창에 내 모든 컨트롤을 '추가'로, 내 WPF 응용 프로그램에서이 '컨트롤'을 사용하기 시작했습니다.WPF : WPF UserControl을 사용의 장점/단점은 무엇입니까?

어쨌든 User Control을 사용하면 더 빠른 처리 시간을 얻을 수 있습니까? 종속성 속성은 어떻습니까? 내 사용자 정의 컨트롤과 내 WPF 윈도우간에 여전히 '통신'할 수 있습니까?

그것에 대해 어떻게 생각하십니까? 미리 감사드립니다.

+2

"빠른 처리 시간"이란 무엇입니까? \ * FSM에게 "더 나은 성능"이 아니라고기도합니다. \ * – BoltClock

+0

@BoltClock : 데이터 처리 시간이 종을 울립니 까? 위/아래 투표 된 것으로 – abramlimpin

답변

3

UserControls는 재사용을 위해 사용해야하지만 을 사용하는 주된 이유는 아닙니다.

useControsl을 사용하는 주된 이유는 xaml의 각기 다른 부분을 분리하여 각 부분이 하나의 책임만을 담당하도록하기위한 것입니다. 예를 들어 VisualStudio를 작성한다면 하나의 userControl에 ToolBox를 만들고 다른 userControl에 CodeEditor를 생성 할 것입니다. 이는 주로 SRP 또는 Single Responsibility Priniciple에 대한 것입니다.

재사용 또는 DRY (반복하지 마십시오)는 중요하지만 SRP가 더 중요합니다.

통신에 관해서는 - 네, 당신은 의존적 인 속성을 사용할 것입니다.

+0

여러분 모두 좋은 답을 가지고,하지만 난합니다 (SRP & DRY 원칙을 위해) 당신을 선택합니다. 문제를 해결해 주셔서 감사합니다. – abramlimpin

0

두 개 이상의 장소에서 컨트롤 그룹을 공유해야하는 경우에만 UserControl을 사용합니다. UserControlWindow 사이에서 통신하려면 사용자 컨트롤에 DependencyProperty -ies를 구현해야합니다. 단점이 있습니다. 따라서 가능한 경우 UserControl을 사용하지 말고 두 버전 (WPFXBAP) 간의 레이아웃을 공유하는 경우에만 사용하십시오.

1

된 UserControls를 사용하는 주된 이유는 그들이 (일반적으로 같은 응용 프로그램 내에서) 재사용 할 수 있도록 '성능'당신이 그렇게 시각적 트리에 추가 노드를 추가에 관해서는

컨트롤 세트를 번들하는 것입니다 느리지 만 눈에 띄지 않습니다.

UserControl과 창 (또는 그 부모) 간의 통신은 레이아웃 클래스에 추가하는 다른 컨트롤과 완전히 비슷합니다.

+0

: 당신은 왜 메세지를 남겨주세요 (아래) 투표는 그래서 우리는 대답에 올 수 있습니다. –