2010-05-30 4 views
0

Number 및 Description 열이있는 DataTable이있는 DataSet이 있습니다.C#/DataSet : DataSet의 DataTable에있는 사용자 지정 열/속성을 만들고 바인딩합니다.

두 컨트롤에 다시 바인딩 된 BindingSource에 두 속성을 모두 바인딩하지 않으려합니다. 내가 원하는 무엇

이 조성 번호 및 설명의

에게 있습니다 NumberDescription라는 DataTable에있는 3 열입니다. 이 속성은 1 개 제어/BindingSource`s 속성

하지 2.

부분 XXXDataSet.Designer.cs 파일과 부분 XXXDataSet.cs 파일이 있습니다를 바인딩됩니다. 물론 Public String NumberDescription {get (여기에서 몇 가지 검사를하고 getDataSet.cs 파일에서 일부 검사를 수행)을 정의했습니다.

그러나이 모든 것은 새 속성/Column을 BindingSource에 바인딩하지 않습니다. DataSet이 새 열/속성을 알지 못하기 때문에 DataTable에 바인딩됩니다.

이 새 속성/열을 알리려면 DataSetble에 NumberDescription이라는 이름의 DataSetble 열에 새 열을 추가 할 수 있습니다. BindingSource의 목록에있는 새 속성을 알고 선택할 수 있습니다. 그러나 그 모두가 도움이되지 못했습니다.

그럼 어떻게해야합니까? NumberDescrip Number AND Description 속성의 속성

답변

2

입력 된 행 클래스에 사용자 지정 속성을 만들고 데이터 바인딩과 함께 사용할 수 없습니다.
직접 IListSource, IBindingListITypedList을 구현하고 PropertyDescriptor을 반환 할 수는 있지만, 양의 작업이 필요합니다.

대신 새 proeprty에 대한 열을 만들고 Expression 속성을 설정하여 계산 된 열을 만들 수 있습니다.

+0

그래 ... 나는 식 칼럼도 제안했을 것이다. http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=322는 합리적인 개요를 제공합니다 – el2iot2

+0

예 NumberDescription 속성은 내 XXXDataSet.cs 파일의 부분 DataRow 클래스에 있습니다. 그래서 내 NumberDescription 열의 Expression 속성에 씁니다 : Number + Description, right? 하지만 새 PROPERTY NumberDescription은 현재 어디에 사용됩니까? 숫자와 설명에 대한 몇 가지 null 검사를 수행해야하므로 Number + Description을 한 열로 바로 작성할 수 없습니다. 검사 결과에 따라 null 또는 string.concat (Number + ""+ 설명) 정말 빈 문자열이 필요합니다 ... – msfanboy

+0

"표현식"에서 모든 것을 할 수 있습니다. 그러면 스스로 재산을 만들지 않을 것입니다. – SLaks

관련 문제