/*
MyHeight 의존 프로퍼티 선언
PropertyMetadata 의 Default 값을 줄 때 해당 데이터형으로 캐스팅을 하지 않으면 문제가 발생할수 있다.
*/
public static readonly DependencyProperty MyHeightProperty =
DependencyProperty.Register ("MyHeight", typeof (double), typeof (MainPage),
new PropertyMetadata ((double) 0, new PropertyChangedCallback (OnMyHeightChanged)));
/*
프로퍼티 수정시 처리하는 핸들러
*/
private static void OnMyHeightChanged (DependencyObject d, DependencyPropertyChangedEventArgs args)
{
((MainPage)d).OnMyHeightChanged (args);
}
/*
실제 데이터를 처리할 핸들러
*/
protected virtual void OnMyHeightChanged (DependencyPropertyChangedEventArgs args)
{
// 로직
}
/*
의존 프로퍼티
*/
public double MyHeight
{
get { return (double) GetValue (MyHeightProperty); }
set { SetValue (MyHeightProperty, value); }
}
public MainPage ()
{
/*
스크롤Viewer 의 ExtentHeight 와 MyHeight 를 연결한다.
*/
// 데이터 바인딩..
Binding newBinding = new Binding ("ExtentHeight");
newBinding.Source = sView;
// 바인딩 데이터를 연결한다.
SetBinding (MyHeightProperty, newBinding);
}