앞에서 ExecuteQueryAsync 에 대한 내용과 Silverlight 웹 파트에 대한 내용을 알아보았는데 이번 블로그에서는 Silverlight Client Object Model의 또 다른 예를 살펴보도록 하겠습니다.
Silverlight 응용 프로그램을 생성하고 아래와 같이 디자인 합니다.
Silverlight Client Object Model 어셈블리를 참조 추가합니다.
Button의 Click 이벤트를 발생시키고 코드 보기에서 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);
빠른 실행에 표시되는 List의 Title을 담게 됩니다.
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를 이용한 내용을 알아보도록 하겠습니다.
'SharePoint 2010' 카테고리의 다른 글
Client Object Model - Javascript(2) (0) | 2010.05.26 |
---|---|
Client Object Model - Javascript(1) (0) | 2010.05.25 |
Client Object Model – Silverlight (1) (0) | 2010.05.18 |
Client Object Model - .NET (1) | 2010.05.14 |
SharePoint 2010 LINQ to SharePoint (1) | 2010.05.12 |