2009-03-23 2 views
0

이것은 이상한 질문 일 뿐이지 만, 여기가 잘못된 데이터베이스 디자인인지 아니면 내가 이상한 상황인지 알 수 있습니다.둘 이상의 DataTable에 컨트롤 바인딩하기

데이터베이스에 두 개의 테이블 ProductGroup 및 Parameters가 있습니다. 하나는 이름별로 다양한 제품 그룹에 대한 정보를 포함하고 다른 하나는 각 그룹에 적용 할 수있는 다양한 매개 변수에 대한 정보를 포함합니다 (따라서 각 그룹을 다르게 만듭니다).

두 테이블을 관련 시키려면 두 번째 기본 키인 groupId 및 groupId가있는 GroupParameters와이 그룹의 매개 변수 값인 세 번째 열이 있습니다.

이제 각 그룹 및 매개 변수 값에 대한 정보를 표시하는 화면이 있습니다. 사용자는이 값도 편집 할 수 있어야합니다. 따라서 제 질문은이 값 (세 번째 테이블에 저장 됨)을 텍스트 상자에 바인딩하는 방법입니다. 그리고 일반적으로 어떻게이 상황에서 컨트롤을 바인딩 할 수 있습니다.

고마워요!

편집 : 내가 남긴 중요한 세부 사항이 있습니다. DataSetDataTable 개체를 사용하여 데이터베이스의 메모리 내 데이터를 저장하고이를 컨트롤에 바인딩합니다. 그 이유는이 문제와 관련이 있지만, 그것은 나를 변화를 추적하고 :(하는 사용자 '에서 그들을 취소 할 수하는 데 함께 할 수있다

+0

이 게시물에는 사소하지만 잠재적으로 혼동하는 오타가 있다고 생각합니다. 포스터는 "데이터베이스에 ProductGroup 및 Parameters라는 테이블 두 개가 있습니다."라고 생각했습니다. –

+0

테이블의 이름은 부적합합니다. 매개 변수 또는 그룹 매개 변수를 호출 할 수 있으며, 테이블에는 그룹에 적용 할 수있는 매개 변수의 ID, 이름 및 설명이 들어 있습니다 (ProductGroup 테이블에 설명되어 있음). – Alexandra

+0

GroupParameters는 세 번째 테이블의 이름이기 때문에 GroupParameters라고 부를 수는 없습니다 (첫 두 개를 관련시키는);) 질문에 답하려고하는 사람들을위한 간단한 설명 포인트. –

답변

0

실제로 나를 위해 일했던 가장 좋은 물건은 MultiBinding이었다. 나는 이것을 인식하지 못했습니다. Google 검색 쿼리를 통해 독자적으로 배워야하는 것을 싫어합니다 (책을 배우는 것이 느려지기도합니다).

0
내가 여기에 어떤 진짜 나쁜 디자인을 볼 수 없습니다

.

사용자가 선택할 수있는 제품 그룹 목록 (ProductGroups 컬렉션에 바인딩 된 ListBox)으로 UI를 구성한 다음 ListBox, CurrentGroupId라는 속성 및 일부 컨트롤 버튼 (예 : OK ") CurrentGroupId를 ProductGroups ListBox의 선택된 값에 바인딩 CurrentGroupId가 변경되거나 Parameters 컬렉션이 변경되면 LINQ 등을 사용하여 내부 ListBox 항목을 필터링해야합니다. 기본적으로 CurrentGroupId가 선택된 ProductGroupId와 일치하는 GroupParameter-s로 ListBox를 채 웁니다. GroupParam이 되라. eter-s 객체. 이제

는 (결국 :)) 귀하의 질문에 대한 답 :

<DataTemplate DataType={x:Type local:GroupParameter}> 
    <StackPanel Orientation="Horizontal"> 
    <TextBox Text="{Binding Value, Mode=TwoWay}" /> 
    <Button Content="OK" Click=INSERT_YOUR_OK_HANDLER_HERE /> 
    <Button Content="Cancel" Click=INSERT_YOUR_CANCEL_HANDLER_HERE /> 
    </StackPanel> 
</DataTemplate> 
: 당신이 데이터 템플릿 목록의 항목이 텍스트 상자를 가질 수 있으며,이 같은 Value 속성에 바인딩 (여기서는 '지역은'네임 스페이스입니다)

사용자가 새 매개 변수를 추가 할 수 있어야하는 경우 현재 선택된 그룹 ID가있는 매개 변수 컬렉션에 새 항목을 추가하는 일부 추가 기능을 만들 수 있습니다. 그런 다음 사용자가 사용자 정의 컨트롤에서 방금 추가 한 항목을 편집 할 수 있습니다.

호프가 도움이되기를 바랍니다. 방금 말한 것을 이해하는 것이 어려울 경우 코드에서 대부분을 쓸 수 있습니다. 나에게 묻기를 주저하지 마라.