ItemSource 로 데이터를 넣은 뒤.. ItemSource 안에 있는 내용을 수정하여 Control 에 적용하려면

ItemSource 로 들어가는 데이터에

INotifyPropertyChanged 를 구현해주면 된다.

 

샘플소스

public class UploadFileInfo : INotifyPropertyChanged
{
	long recvFileSize = 0;
	public long RecvFileSize
	{
		get { return recvFileSize; }
		set 
		{
			recvFileSize = value;
			NotifyPropertyChanged ("RecvFileSize");
		}
	}

	#region INotifyPropertyChanged Members

	private void NotifyPropertyChanged (string prop)
	{
		PropertyChangedEventHandler handler = PropertyChanged;

		if (handler != null)
			handler (this, new PropertyChangedEventArgs (prop));
	}

	public event PropertyChangedEventHandler PropertyChanged;

	#endregion

 

/*
	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);

}

TreeView 기본 틀

C#/SilverLight 2012. 6. 1. 09:57 Posted by 퓨어레드

<!-- 네임 스페이스 선언 -->

<UserControl x:Class="FreeTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:sdk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White">
        <sdk:TreeView>
            <sdk:TreeViewItem Header="바탕 화면">
                <sdk:TreeViewItem.Items>
                    <sdk:TreeViewItem>
                        <sdk:TreeViewItem.Header>
                            <TextBlock Text="내 문서" Margin="2" />
                        </sdk:TreeViewItem.Header>
                        <sdk:TreeViewItem.Items>
                            <sdk:TreeViewItem>
                                <sdk:TreeViewItem.Header>
                                    <TextBlock Text="내 사진" Margin="2" />
                                </sdk:TreeViewItem.Header>
                            </sdk:TreeViewItem>
                            <sdk:TreeViewItem>
                                <sdk:TreeViewItem.Header>
                                    <TextBlock Text="내 비디오" Margin="2" />
                                </sdk:TreeViewItem.Header>
                            </sdk:TreeViewItem>
                        </sdk:TreeViewItem.Items>
                    </sdk:TreeViewItem>
                </sdk:TreeViewItem.Items>
            </sdk:TreeViewItem>
        </sdk:TreeView>
    </Grid>
</UserControl>

 

실버라이트 자바스크립트와 통신

C#/SilverLight 2012. 5. 23. 11:43 Posted by 퓨어레드

실버라이트 툴킷 다운로드 주소

C#/SilverLight 2012. 4. 19. 00:57 Posted by 퓨어레드

아래 경로에서 다운로드 받는다.

 

http://silverlight.codeplex.com/