2012-05-08 5 views
0

mvvm-light에는 두 가지 속성 만들기 스 니펫이 있습니다. mvvminpc 'normal'속성을 만듭니다. mvvmpropa를 사용하여 연결된 속성 (일명 종속성 속성)을 만듭니다. 어떤 것을 사용할 것인지 선택할 때 고려해야 할 사항에 대한 지침이 있는지 알고 싶습니다.mvvm-light : 일반 속성 또는 종속성 속성

답변

1

UI 구성 요소 (컨트롤 등)를 만들 때 종속성 속성을 사용하는 것이 좋습니다. 바인딩에 대한 성능이 향상됩니다.

정상적인 속성은 비즈니스 개체가 있거나 UI 컨트롤을 만들거나 작성하지 않은 경우에 사용됩니다.

3

저는 MVVM 표시등에 대한 이러한 속성 항목도 잠시 동안 검색했습니다. 아래는 MVVM에서 제공되는 속성 스 니펫에 대한 이해입니다. 서로 다른 용도로 사용되기 때문에 하나를 다른 것에 사용하는 경우는 실제로 없습니다.

바인딩 가능 속성 - 뷰를 표시 할 데이터를 표시하기 위해 바인딩 할 수있는 속성이 ViewModels에 만들어집니다.

예제에는 다음이 포함됩니다. 직원 컬렉션 또는 선택한 직원 정보를 표시합니다.

종속성 속성 - 코드 스 니펫과 관련하여 구체적으로 살펴 봅니다. 이러한 등록 정보는 상수 값으로 설정하거나 에 대한 데이터 바인딩을 사용하여 뷰 모델 데이터의에 따라 달라질 수 있습니다.

예제는 다음과 같습니다. 텍스트 블록 컨트롤의 "텍스트"속성은 종속성 속성입니다. "Height"및 "Width"속성은 종속성 속성이기도합니다.

첨부 속성 - 사용자 컨트롤에 더 구체적으로 사용됩니다. 이 속성은 부모 컨트롤에 추가됩니다. 자식 컨트롤은 이러한 속성을 사용하여 부모 컨트롤 내에서 특정 방식으로 동작합니다.

예 : Dockpanel 자체가 Dock (연결 속성 이름)을 사용하지 않습니다. 내부에 포함 된 자식에 의해 사용되며, 이제 자식은 DockPanel.Dock = "Top"속성을 설정할 수 있습니다.

바인딩 속성는 뷰 모델 코드의 공공 재산이 될 것 EmployeeName이있다 : 위의 예제 코드에서

<DockPanel> 
     <TextBlock Text="{Binding EmployeeName}" DockPanel.Dock="Top" /> 
     <Button Content="Click Here" DockPanel.Dock="Bottom" /> 
    </DockPanel> 

.

종속성 속성은 텍스트 블록의 Text = ""속성 및 버튼의 Content = ""속성입니다.

첨부 속성은 텍스트 블록 및 단추에 사용되는 DockPanel.Dock 속성이지만 실제로는 Dockpanel 자체에 의해 노출됩니다. Dockpanel에는 .Dock 코드가 없으며 자식 만 수행합니다.