레이블이 #StaticResource인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #StaticResource인 게시물을 표시합니다. 모든 게시물 표시

2019년 1월 26일 토요일

(WPF강좌추천)WPF 데이터바인딩, Source, StaticResource를 통한 데이터 바인딩

(WPF강좌추천)WPF 데이터바인딩, Source, StaticResource를 통한 데이터 바인딩
FrameworkElement를 상속받지 않은 객체를 바인딩 하기 위해서는 StaticResource를 사용하여 데이터 바인딩을 할 수 있는데 XAML의 Resource절에 객체를 정의하고 StaticResource로 접근하면 된다.
<Window>
<Window.Resources>
<src:ClockTicker1 x:Key="clock" />
</Window.Resources>
<Window.Content>
<Binding Source="{StaticResource clock}" Path="DateTime" />
</Window.Content>
</Window>
Window.Resource 절에서 ClockTicker1을 정의하고 clock 이라는 key를 정의했으며 이 키를 이용하여 Binding 절에서 Source, StaticResource를 사용하여 지정하고 ColckTicker1의 DateTime 프로퍼티와 바인딩 시켰다.
n 전자시계를 만들어 보는데 현재 시각이 변했을 때 통지하는 메커니즘이 필요할 것이다.
DigitalClock 이라는 이름으로 WPF 응용프로그램 프로젝트를 생성
n ClockTicker1.cs
//---------------------------------------------
// ClockTicker1.cs (c) by Charles Petzold
//---------------------------------------------
using System;
using System.Windows;
using System.Windows.Threading;
namespace DigitalClock
{
public class ClockTicker1 : DependencyObject
{
// 의존 프로퍼티 선언
public static DependencyProperty DateTimeProperty =
DependencyProperty.Register("DateTime", typeof(string),
typeof(ClockTicker1));
// CLR property로 의존 프로퍼티를 노출
public string DateTime
{
set { SetValue(DateTimeProperty, value); }
get { return (DateTime)GetValue(DateTimeProperty); }
}
// 생성자.
public ClockTicker1()
{
DispatcherTimer timer = new DispatcherTimer();
timer.Tick += TimerOnTick;
timer.Interval = TimeSpan.FromSeconds(1); //1초에 한번씩
timer.Start();
}
// DateTime property 값을 설정하기 위한 Timer 이벤트 핸들러
void TimerOnTick(object sender, EventArgs args)
{
DateTime = DateTime.Now.ToString(yyyyMMdd HHmmss);
}
}
}
n MainWindow.xaml
<!-- =====================================================
DigitalClockWindow.xaml (c) by Charles Petzold
===================================================== -->
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:DigitalClock"
Title="Digital Clock"
x:Class="DigitalClock.MainWindow"
SizeToContent="WidthAndHeight"
ResizeMode="CanMinimize"
FontFamily="Bookman Old Style"
FontSize="36pt">
<Window.Resources>
<src:ClockTicker1 x:Key="clock"/>
</Window.Resources>
<Window.Content>
<Binding Source="{StaticResource clock}" Path="DateTime" />
</Window.Content>
</Window>
n 실행결과

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...