-
커스텀 데이터 원본 DataBindingdev/.NET 2009. 9. 23. 09:23
커스텀 데이터 원본이라고 하면 데이터 집합을 제외한 대부분을 지칭.
값타입이나 여러 클래스 인스턴스등등.
커스텀 항목 데이터 원본을 만들기 위해서는 하나 이상의 공용 속성을 제공.
class NameAndNum
{
public string Name { get; set; }
public int Num { get; set; }
}이후 데이터 바인딩을 지정하면 됨.
NameAndNum source = new NameAndNum();
textbox1.DataBindings.Add("Text", source, "Name");
textbox2.DataBindings.Add("Text", source, "Num");이렇게 한 후 바인딩된 컨트롤의 값을 변경하면 원본에 값은 반영이 된다.
하지만 반대(원본 소스를 변경)의 경우엔 그 결과가 바인딩된 컨트롤에 바로 반영되지 않도록 기본 설정되어 있다.
이러한 처리를 하려면 이벤트를 등록해주어야 한다.이때 필요한것은 이벤트
public event EventHandler <propertyName>Changed;위의 예제를 수정하면,
class NameAndNum
{
private string name;
public event EventHandler NameChanged;
public string Name
{
get { return name; }
set
{
name = value;
if(NameChanged != null) NameChanged(this, EventArgs.Empty);
}
public int Num {//위와 유사}
}요정도로 가능하겠지.
값이 설정될때 이벤트가 발생하도록 지정해주면 바인딩된 컨트롤은 소스 변경을 통보받고 변경된 값을 컨트롤에 보여주게 된다.
출처-C# 을 이용한 윈도우 폼 프로그래밍