2011-08-25 7 views
1

데이터를 마샬링하고 양식 및 그리드에서 조작하는 경우 "ADO 개체"(주로 DataSet, DataTableDataRow)를 사용합니다. 우리는 네이티브 ADO 객체에 점포 맛의 대응 물을 만들어내는 실험을하고 있습니다. 그래서 우리는 사내 ADO 객체에 자체 표준을 부과 할 수 있습니다.WinForms 컨트롤에 바인딩 할 수있는 사용자 정의 DataTable을 만드시겠습니까?

구현은 단 한 가지 예외가 있습니다. 객체를 컨트롤에 바인딩 할 수 있기를 바랍니다.

저는 IList, IBindingList, BindingSource 등을 알고 있고 이것들을 살펴 보았습니다. 그러나 단단한 속성 이름이없는 클래스를 만들 때 짧습니다. bindable. 네이티브 ADO 개체는 기본적으로 강력하게 형식화되지 않습니다. Item 속성 (예 : row("Age") 또는 row.Item("Age"))을 통해 액세스하는 열 값이 있습니다. 온라인에서 찾은 바인딩 예제는 강력한 형식의 개체 (예 : row.Age)를 처리합니다. 기본적으로 컨트롤에 바인딩 할 수있는 기능을 유지하는 사용자 지정 ADO 개체 (기본 개체에서 상속받지 않음)를 만들고자합니다.

어떻게 구현할 수 있는지에 대한 예가 있습니까? 내가 열 이러한 속성 row("Name"), row("Age")row("Occupation")를 통해 노출되는 행에서 Name, AgeOccupation을 보여야하는데 그리드에서

. 이는 정확히 DataTableDataRow이 제공하는 것과 동일하므로 수행 할 수 있어야합니다.

이것은 구체화 된 earlier question입니다.

+0

무엇이 당신의 질문입니까? DataTables는 바인딩 가능합니다. – msarchet

+0

바인딩을 위해 "Item (...)"을 구현하려고 시도하면서 잘못된 트리를 짖고 있다고 생각합니다. 나는 "Item (...)"과 모든 과부하를 구현하는 자체 DataRow 유형의 객체를 만들려고했지만 바인딩 할 때 호출되지 않습니다. 컨트롤을 만드는 또 다른 방법은 "Age"라는 속성이 있다고 믿어야합니다. 아직 무엇이 될지 확실하지 않습니다. – andyhasit

+0

msarchet - 기존 ADO.NET 클래스를 상속하지 않고 어떻게 구현합니까? 베어 본 - DataTable/DataRow 자신 (모든 코드와 Microsoft의 아무도)? 사용자 정의 클래스는 격자 및 컨트롤에 바인딩 가능해야합니다. – Mario

답변

0

PropertyDescriptor와 함께 작동하는 ITypedList 인터페이스를 사용해야 할 것 같습니다. 나는이 발견 한 가장 분명한 기사는 여기에 있습니다 : 나는 다시 자신에게 잠시이를 시도했고,이 문서를 기반으로 다른 시도를 제공한다

http://blog.lab49.com/archives/705

.

+0

아 ... 언뜻보기에 이것은 내 요구에 맞는 것처럼 보입니다. 나는 그것을 완전히 읽고 그것을 시험 할 시간이 있기 때문에 좀 더 명확히 돌아올 것이다. 도와 줘서 고마워, 앤디. – Mario

관련 문제