데이터를 마샬링하고 양식 및 그리드에서 조작하는 경우 "ADO 개체"(주로 DataSet
, DataTable
및 DataRow
)를 사용합니다. 우리는 네이티브 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
, Age
및 Occupation
을 보여야하는데 그리드에서
. 이는 정확히 DataTable
및 DataRow
이 제공하는 것과 동일하므로 수행 할 수 있어야합니다.
이것은 구체화 된 earlier question입니다.
무엇이 당신의 질문입니까? DataTables는 바인딩 가능합니다. – msarchet
바인딩을 위해 "Item (...)"을 구현하려고 시도하면서 잘못된 트리를 짖고 있다고 생각합니다. 나는 "Item (...)"과 모든 과부하를 구현하는 자체 DataRow 유형의 객체를 만들려고했지만 바인딩 할 때 호출되지 않습니다. 컨트롤을 만드는 또 다른 방법은 "Age"라는 속성이 있다고 믿어야합니다. 아직 무엇이 될지 확실하지 않습니다. – andyhasit
msarchet - 기존 ADO.NET 클래스를 상속하지 않고 어떻게 구현합니까? 베어 본 - DataTable/DataRow 자신 (모든 코드와 Microsoft의 아무도)? 사용자 정의 클래스는 격자 및 컨트롤에 바인딩 가능해야합니다. – Mario