티스토리 뷰

UPDATE 다른 곳에 썻던 내용을 이곳에 통합하기 위해 옮겼습니다.

앞에서 ExecuteQueryAsync 에 대한 내용과 Silverlight 웹 파트에 대한 내용을 알아보았는데 이번 블로그에서는 Silverlight Client Object Model또 다른 예를 살펴보도록 하겠습니다.

 

Silverlight 응용 프로그램을 생성하고 아래와 같이 디자인 합니다.

Silverlight Client Object Model 어셈블리를 참조 추가합니다.

ButtonClick 이벤트를 발생시키고 코드 보기에서 using 구문에 아래 코드를 작성합니다.

using Microsoft.SharePoint.Client;

 

생성자 위에 비동기적으로 UI 스레드를 처리하기 위해 아래 코드를 추가합니다. Dispatcher BeginInvoke 에서 사용되어야 합니다. ListInfo LoadQuery를 통해 List 개체를 담게 됩니다.

private delegate void UpdateUIMethod();

IEnumerable<List> listInfo;   

 

아래는 목록 정보를 액세스하는 코드입니다. Button Click 이벤트에 아래 코드를 통해 LoadQuery 메서드를 호출합니다.

ClientContext context = new ClientContext("http://sp.webtime.co.kr");


Web site = context.Web;

ListCollection collList = site.Lists;


context.Load(site, website => website.Title);

            listInfo = context.LoadQuery(

                collList.Include(

                    list => list.Title).Where(

                    list => list.OnQuickLaunch== true));


context.ExecuteQueryAsync(Succeeded, Failed);


빠른 실행에 표시되는 ListTitle을 담게 됩니다.

 

DisplayInfo 메서드에서 ListBox 컨트롤에 바인딩하는 코드입니다.

private void Succeeded(object sender, ClientRequestSucceededEventArgs e)

        {

            UpdateUIMethod updateUI = DisplayInfo;

            this.Dispatcher.BeginInvoke(updateUI);

        }


private
void DisplayInfo()

        {

       

            this.listBox1.DisplayMemberPath = "Title";

            this.listBox1.ItemsSource = listInfo.ToList();

        }


private
void Failed(object sender, ClientRequestFailedEventArgs e)

        {

            MessageBox.Show("Create Fail");

        }

 

 

 

 Xap 파일을 라이브러리에 업로드하고 Silverlight 웹 파트를 추가해서 경로를 지정합니다.

버튼을 클릭하면 빠른 실행에 있는 목록들의 Silverlight Client Object Model을 이용해서 알 수 있습니다.


SDK의 아래 주소를 참고하실 수 있습니다.

http://msdn.microsoft.com/en-us/library/ee538971(office.14).aspx

 

Silverlight Client Object Model을 알아보았고 다음 블로그에서 Javascript를 이용한 내용을 알아보도록 하겠습니다.


댓글