2010-02-08 2 views
0

데이터 구조가 지정된 경우 { 컬렉션 요소; String LocationName; }ComboBox SelectedItem의 부모 속성에 대한 RelativeSource 바인딩 개체 반환 개체

DisplayMemberPath를 LocationName으로 설정하여 이러한 항목 (구조체에서 설명 됨)의 컬렉션에 바인딩 된 ComboBox는 XAML에서 해당 콤보 상자의 SelectedItem.Elements에 데이터 격자를 바인딩하려면 어떻게해야합니까?

내 이해에 따라 콤보 상자의 SelectedItem 속성은 LocationName을 반환합니다. 구조의 데이터 컨텍스트에서 위로 이동하여 SourceItems를 요소에 첨부해야합니다. 옳은? 그러나 Binding 마크 업과 함께 작동하지 않는 것처럼 보입니다.

P. 나는 샘플 데이터로 GUI를 조작하고있다.

감사합니다.

업데이트 1 : LocationName에 대한 DisplayMemberPath을 지정한 이유

<ComboBox x:Name="ComboBox1" 
      ItemsSource="{Binding AdSources, Mode=OneWay}" 
      DisplayMemberPath="NameProperty" /> 

<ComboBox x:Name="ComboBox2" 
       ItemsSource="{Binding SelectedItem.CollectionProperty, ElementName=ComboBox1, Mode=OneWay}" 
       DisplayMemberPath="NameProperty2" /> 

<data:DataGrid x:Name="DataGrid" 
     ItemsSource="{Binding SelectedItem.CollectionProperty, ElementName=ComboBox2, Mode=OneWay}"> 
     <data:DataGrid.Columns> 
      <data:DataGridTextColumn Header="Column1" Binding="{Binding Property1}"/> 
     </data:DataGrid.Columns> 
</data:DataGrid> 

답변

1

SelectedItem 전체 개체를 가리 킵니다는, 그건 다음과 같이 코드가 보인다. 전체 개체가 선택되지만 위치 이름 만 표시됩니다.

SelectedItem.Elements에 바인딩 할 수 있습니다. 작동하지 않는 경우 문제가있는 것일 수 있습니다.