삽질의 현장/- .NET

#123_닷넷(.NET)_ WPF_ 계층적 바인딩

shovelman 2015. 12. 6. 23:22



안녕하세요 삽잡이입니다.


이번 시간은 계층적 바인딩에 대해서 알아보려고합니다.



계층적 바인딩은 이와 같이 트리형태로 열립니다.



은근 복잡할 것 같지만, xaml 코드로 간단하게 한줄로 끝나지요...

이를 계층적 바인딩이라고 부릅니다.


TreeView의 Item에는 가장 최상위 요소인 Familes가 보입니다.



그리고 이 Families가 

어떻게 나타날지에 대해서는 이와 같이 정의 되있습니다.


모든 Familes를 

이와 같은 형식으로 보여주라고 명시한 것입니다.

해당 예제에서는 모든 Familes를 TextBlock으로 보여주라고 하고 있습니다.


계층적 바인딩에는 계층적인 요소를 사용합니다.

단일 요소에는 TextBox등이 있었고,

다중 요소에는 ListBox, ComboBox등이 있었지요...

이와 같이 계층적인 요소에는 Menu, Tree등이 있습니다.


아무튼... 이와 같은 형식의 바인딩을 수행하는 것이

계층적인 바인딩이라고 합니다.



형식지정 템플릿으로써,

DataTemplate을 HierarchicalDataTemplate으로 바꿨습니다.

해당 템플릿에는 ItemSource를 설정할 수 있습니다.

Familes 안에는 멤버들이 있는데, 해당 멤버들을 달수 있게 됩니다.



또 이 안에는 

각 멤버들의 특징에 대한 요소를 보여줘야하기 때문에 하나 더 달아야겠지요...



Trait은 더이상 깊이가 없기 때문에 ItemSource를 쓸 필요가 없습니다.


계층적인 템플릿이 있기에 가능한 것입니다.

계층적인 데이터 바인딩을 수행한 것이고,



더욱이, 리소스가 있기 때문에 가능해진 것입니다.

(물론, 지금은 일부로 잘랐지만... 더 길겠지요...)


객체를 직접 만들어도 되지만,

xaml에서 이렇게 편하게(?) 만들 수 있기 때문에...


아무튼... 계층적 바인딩은 이렇게 동작합니다.



이번 시간은 여기까지 하도록 하겠습니다.

이상 삽잡이였습니다!



<참고 : Programming WPF : 사용자 경험(UX)을 바꾸는 기술>