2010-06-11 4 views
0

다소 복잡한 바인딩 상황이 있습니다. VS2005에서 다시이 Windows 폼에서 만든 솔루션이 있지만 지금 wpf 사용하여 컨트롤을 다시 만드는 오전,하지만 이전에 그것을 정확히 동일한 방식으로하지 않습니다.계층 적으로 연결된 별도의 목록 상자에서 상위 ListboxItem을 편집하는 방법

나는 다음과 같은 DataTemplate을 가지고있는 목록 상자 컨트롤이 : 그 다음은

<DataTemplate> 
    <Border CornerRadius="5" BorderBrush="Black" BorderThickness="1"> 
    <StackPanel> 
     <TextBlock x:Name="TaxonomyCode" Margin="2" FontWeight="Bold" 
     FontSize="12"> 
     <TextBlock.Text> 
      <MultiBinding StringFormat="{}{0}{1}{2}X"> 
      <Binding Path="TaxonomyTypeID" /> 
      <Binding Path="TaxonomyClassificationID" /> 
      <Binding Path="TaxonomySpecializationID" /> 
      </MultiBinding> 
     </TextBlock.Text> 
     </TextBlock> 
     <TextBlock Margin="2" 
     Text="{Binding ElementName=TaxonomyCode,Path=Text,Converter={StaticResource TaxonomyCodeToDescriptionConverter}}" /> 
    </StackPanel> 
    </Border> 
</DataTemplate> 

내 뷰 모델에 속성을 사용하여 실제 분류 계층 구조를 나열 3 개리스트 박스가를 ...

<ListBox 
    Grid.Column="0" Grid.Row="1" 
    ItemsSource="{Binding TaxonomyTypeLUT}" 
    DisplayMemberPath="IDDescription" 
    SelectedItem="{Binding Path=SelectedTaxonomyType}" /> 
<ListBox 
    Grid.Column="1" Grid.Row="1" 
    ItemsSource="{Binding SelectedTaxonomyType.TaxonomyClassifications}" 
    DisplayMemberPath="IDDescription" 
    SelectedItem="{Binding Path=SelectedTaxonomyClassification}" /> 
<ListBox 
    Grid.Column="2" Grid.Row="1" 
    ItemsSource="{Binding SelectedTaxonomyClassification.TaxonomySpecializations}" 
    DisplayMemberPath="IDDescription" 
    SelectedItem="{Binding SelectedTaxonomySpecializations}" /> 

실제 데이터베이스 바인딩은 종류도 복잡합니다.

분류 코드 : 207R00000X 분류 : 20 7R 00000 번역 : Allopathic, 내과학 , 내과 분류 코드 : 208M00000X는 다음으로 분류됩니다 : 20 8M 00000 번역 : allopathic, hospitalist, hospitalist

각각의 분류는 자체 테이블의 키 필드입니다. 여기

alt text

내 테이블의 디자인입니다.

새로운 선택이 이루어지면서 하위 컨트롤을 각 자식으로 변경하려고합니다. 나는 일하고있다. 이제 최상위 목록을 선택할 때 아래쪽 목록에 선택한 항목의 분류가 반영됩니다. 나는 단방향 구속력으로 그렇게 할 수 있습니다.

편도에 바인딩하지 않으면이 ErrorMessage가 표시됩니다. 'TaxonomySpecializationID'속성은 개체의 주요 정보의 일부이며 수정할 수 없습니다. "

이상적으로 내가하고 싶은 것은 목록 상자를 사용하여 선택한 DoctorTaxonomy의 분류를 변경하는 것입니다. 어쩌면 그냥 작동하지 않습니다 ...

답변

0

나는이 값을 가지고 새 항목을 만들고 컬렉션에서 원래 값을 삭제 한 다음 새 항목을 삽입했습니다.

관련 문제