WPF교육동영상,x:Static, Source를 통한 데이터 바인딩(DateTimeFormatInfo를 이용한 요일정보를 ListBox, TextBlock에 바인딩), WPF학원
http://ojc.asia/bbs/board.php?bo_table=WPF&wr_id=169
ojc.asia
https://www.youtube.com/watch?v=8EA-LXKJpkI&list=PLxU-iZCqT52Cmj47aKB1T-SxI33YL7rYS&index=12

https://www.youtube.com/watch?v=wgz3OyVqfY4&list=PLxU-iZCqT52Cmj47aKB1T-SxI33YL7rYS&index=13&t=1s

- ElementName으로 바인딩의 소스를 명시하는 것 대신 Binding 클래스의 Source 프로퍼티를 사용하여 바인딩 하는 것이 가능한데 Source 프로퍼티는 객체를 참조하고 Path는 객체의 프로퍼티를 참조한다.
- Source를 사용하기 위한 한 가지 방법은 x:Static 마크업을 확장해야 되는데 x:Static은 XAML에서 클래스 내의 정적필드나 프로퍼티를 참조할 수 있게 한다.
- System.Globalization 네임스페이스에 있는 DateTimeFormatInfo 클래스의 DayName 프로퍼티는 요일에 해당하는 문자열 배열을 반환하는 인스턴스 프로퍼티다. DateTimeFormatInfo 클래스는 두 개의 정적 프로퍼티를 제공하는데 InvariantInfo는 변함 없는 문화권을 지원하며 CurrentInfo는 사용자 자신의 현재 문화권을 지원한다.
C#에서는 다음과 같이 요일에 해당하는 문자열 배열을 현재 사용자의 문화권으로 지정한다.
string[] dayNames = DateTimeFormatInfo.CurrentInfo.DayNames;
- MainWindow.xaml
<Window x:Class="DayNames.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:g="clr-namespace:System.Globalization;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<!-- 한번만 바인딩 -->
<ListBox Name="lstbox"
HorizontalAlignment="Center"
Margin="24"
ItemsSource="{Binding
Source={x:Static g:DateTimeFormatInfo.CurrentInfo},
Path=DayNames,
Mode=OneTime}" />
<!-- 리스트박스의 SelectedItem 속성과 TextBlock의 Text속성을 바인딩 -->
<TextBlock HorizontalAlignment="Center"
Text="{Binding ElementName=lstbox,
Path=SelectedItem, Mode=OneWay}" />
</StackPanel>
</Window>
- 실행결과

#x:Static, #WPF데이터컨텍스트, #데이터컨텍스트, #WPF데이터바인딩, #WPF교육, #WPF강좌, #WPF학원, #DataBinding, #WPFDataBinding
x:Static,WPF데이터컨텍스트, 데이터컨텍스트,데이터바인딩, WPF데이터바인딩, WPF교육, WPF강좌, WPF학원, DataBinding, WPFDataBinding
댓글 없음:
댓글 쓰기