실버라이트 초간단 데이터 바인딩
1.ADO.NET Entity Data Model 을 만듭니다 (서버측)
2. 그런다음 데이터베이스에 접근할수 있는 ado.net Data Service 를 만들어줍니다. (서버측)
3.실버라이트 프로젝트에서 웹서비스를 참조합니다.
4.데이터그리드에 데이터를 바인딩 합니다.
5.테스트 끝~
1.ADO.NET Entity Data Model 을 만듭니다
그런다음 데이터베이스테 테이블을 추가시키면 자동으로 만들어 줍니다
BOOK , BookOrderHistory 는 테이블 명입니다
만들어진 ADO.NET Entity Data Model 에 접근한기위한 ado.net Data Service 를 만들어줍니다
using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Linq;
using System.ServiceModel.Web;
using System.Web;
namespace BM.Web
{
public class BookWebDataService : DataService< CITY_GAS_BOOKEntities>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(IDataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
config.SetEntitySetAccessRule("*", EntitySetRights.All);
//config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
//config.UseVerboseErrors = true;
}
}
}
실버라이트 프로젝트에서 사용하기 위해서 서비스를 참조 시킵니다
BOOK 을 담는 ObservableCollection 클래스를 구현합니다
using System.ComponentModel;
using System.Collections.ObjectModel;
using BM.ServiceReference1;
namespace BM.CodeTest
{
public class BooksDS : ObservableCollection<BOOK>
{
public BooksDS() : base()
{
}
}
}
실버라이트에서 데이터 그리드 (grdList 로 이름을 주세요 ) 를 하나 만들고
CLR Object Data Source 를추가 시켜줍니다. 정상적으로 추가가 되면
BooksDS 찾아서 바인딩 시켜주세요
데이터 그리드에 자동으로 컬럼이 표시됩니다 (자동컬럼으로 설정되었을 경우 )
실제 코드 상의 셀렉트
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Services.Client;
using System.Collections.ObjectModel;
using System.ComponentModel;
using BM.ServiceReference1;
namespace BM.CodeTest
{
public partial class Delete : UserControl
{
ServiceReference1.CITY_GAS_BOOKEntities svcContext;
ObservableCollection<ServiceReference1.BOOK> ObsvBookCollrection;
BooksDS bookDs;
public Delete()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Delete_Loaded);
}
void Delete_Loaded(object sender, RoutedEventArgs e)
{
svcContext = new CITY_GAS_BOOKEntities(new Uri("BookWebDataService.svc", UriKind.Relative));
ObsvBookCollrection = new ObservableCollection<BOOK>();
bookDs = new BooksDS();
DataServiceQuery<BOOK> query = (DataServiceQuery<BOOK>)
(from c in svcContext.BOOK select c);
query.BeginExecute(GetDataCallback, query);
}
#region 셀렉트
void GetDataCallback(IAsyncResult result)
{
try
{
DataServiceQuery<BOOK> queryResult =
(DataServiceQuery<BOOK>)result.AsyncState;
IEnumerable<BOOK> results =
queryResult.EndExecute(result);
foreach (var item in results)
{
bookDs.Add(item);
}
grdList.ItemsSource = bookDs;
MessageBox.Show("도서목록가져오기 완료");
}
catch (DataServiceRequestException ex)
{
}
}
#endregion
}
}'WPF' 카테고리의 다른 글
| [WPF Key.Enter]엔터키 이동 (0) | 2010.12.22 |
|---|---|
| [WPF Ribbon 컨트롤] Windows Xp 오류 문제 (0) | 2010.12.17 |
| [DataGridCell / Setter ] 특정 Cell 만 변경하기 (0) | 2010.11.26 |
| [WPF Blend4/MouseDrag/MouseDragElementBehavior ] 창 가운데 띄우기 / 마우스드래그 (0) | 2010.11.24 |
| WPF Dialog Box/ ValidationRule 파일열기 유효성검사 (0) | 2010.10.20 |
| [VisualTreeHelper] 부모컨트롤 찾기 / 자식컨트롤 찾기 (0) | 2010.09.16 |
| [DependencyObject.GetValue] 사용하기 (0) | 2010.09.16 |
| [Blend4 / DataGrid / DataTemplate / CellEditingTemplate / Edit] 데이터그리드 편집모드 사용하기 (0) | 2010.09.16 |
| StaticResource 와 DynamicResource 의 차이 (0) | 2010.09.15 |
| [StringFormat] 초간단 날짜 표시방법변경 (0) | 2010.09.01 |