리소스 데이터 바인딩과 스태틱 리소스 예제(About Static resource & resource data binding)
우리가 자주 사용하는 특정 배열이 변하지 않는다는 가정을 하고, 그 배열을 이곳 저곳 (List Box)에서 반복해서 사용해야 한다고 생각해보자.
이렇게 다른곳에서 참조하여 사용하고 싶을대 이 배열을 리소스 엘리먼트안에 넣는다면 그러한 방식으로 사용 할 수 있다.
WPF의 리소스들은 문자열 배열과 같은 마크업의 커스텀 데이터를 보여주기 위해서 주로 사용한다.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:CorLib="clr-namespace:System;assembly=mscorlib"> <StackPanel> <StackPanel.Resources> <x:Array Type="CorLib:String" x:Key = "GoodMusic"> <CorLib:String>Sun Kil Moon</CorLib:String> <CorLib:String>Red House Painters</CorLib:String> <CorLib:String>Besnard Lakes</CorLib:String> </x:Array> </StackPanel.Resources> <Label Content ="Really good music"/> <ListBox Width = "200" ItemsSource ="{StaticResource GoodMusic}"/> </StackPanel> </Page> |
그리고 이렇게 staticResource마크업 확장자 식으로 ListBox에 대입되게 되면 초기 바인딩 이후에 값이 변하지 않고 항상 유지된다. 다른것이 향후 변경된다하더라도 이 staticResource를 참조한 컨트롤의 값은 변하지 않는다.
이것을 허용하기 위해서는 DynamicReosurce를 이용해야 한다.