일부 컨트롤을 객체에 바인딩하려고합니다. 일반적으로 매우 간단한 프로세스입니다. 내가 CollectionBase에서 상속하는 바인딩을 클래스 필드에 바인딩하고있어 개체가 오류가 발생하는 경우 불행하게도, : CollectionBase에의 inheiritance이 문제가 멀리 이동하게 제거CollectionBase에서 파생 된 클래스의 속성에 바인딩
Cannot bind to the property or column Caption on the DataSource. Parameter name: dataMember
을, 그러나 나는 집합 일이 개체가 필요합니다 . CollectionBase가 상위 수준 속성을 "바인딩 해제 가능"하게 만듭니다. 이 문제를 해결하기 위해 재정의 할 수있는 속성이 있습니까? 다른 아이디어?
온라인으로이 예제를 쉽게 요약 한 것으로 나타났습니다. 불행히도이 예제가 게시 된 모든 곳에서 아직 답을 찾을 수 없습니다.
코드 : 개별 데이터 바인딩의 목록 내에서 찾기 위해 데이터 소스로 바인딩 시도를 사용할 때
[STAThread]
static void Main()
{
TestCollection obj = new TestCollection();
using (Form f = new Form())
using (BindingSource bs = new BindingSource())
{
bs.DataSource = typeof(Test);
f.DataBindings.Add("Text", bs, "Caption");
bs.DataSource = obj; // breaks
//List<TestallData = new List<Test>();
//allData.Add(obj);
//bs.DataSource = allData;
f.ShowDialog();
}
}
class TestCollection : CollectionBase
{
public string Caption { get { return "Working"; } }
}
으로 변경하십시오. 왜 DataSource를 두 번 설정합니까? 먼저 유형을 입력 한 다음 인스턴스로 입력하십시오. – abatishchev