2010-06-13 5 views
0

데이터 컨텍스트가 'Product'개체로 설정된 wpf tabitem이 있습니다. 이 양식의 모든 컨트롤은 'Product'개체에서 데이터를 가져옵니다. ItemsView 속성이 내 개체 'Product.DetailsList'의 목록에 설정된 listview가 있습니다. Listview 열은 'Product.DetailsList'의 개체 속성에 바인딩됩니다.데이터 바인딩에 대한 속성 혼동

여기까지 모든 것이 정상적으로 작동합니다. 이제 내 목록 뷰의 열 중 일부를 내 datacontext 객체 즉, '제품'의 속성에 바인딩해야합니다. 누군가 내가 이것을 어떻게 얻을 수 있는지 말해 줄 수 있습니까?

답변

0

컨트롤간에 계층 구조가 어떻게되어 있는지 완전히 명확하지 않습니다. DataContext는 이런 식으로 작동합니다 : 최상위 레벨 컨트롤에서 자식으로 상속됩니다. 이 경우 WPF TabItem이 ListView의 부모 컨트롤이면 ListView는 TabItem과 동일한 DataContext를 갖게됩니다. 당신은 흥미로운 부분은 FindAncestor로 설정 상대 소스입니다

 <TabItem> 
      <ListView> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor, 
             AncestorType={x:Type TabItem}}, Path=DataContext.MyPropInProductObject}"> 

         </GridViewColumn> 
        </GridView> 
       </ListView.View> 
      </ListView> 
     </TabItem> 

을 당신은 DataContext에이 제품 객체로 설정되어 있는지 알고 있기 때문에 : 바로 그것을 얻을 가정 또한

, 당신은이 작업을 수행 할 수 있습니다 당신이 원하는 부동산을 요청할 수 있습니다. 내가 제대로 질문을 이해하면

HTH는

0

, 당신은 컬렉션의 현재 항목의 일부 속성에 바인딩하는 방법을 부탁드립니다. 그것은 바인딩 경로에 슬래시 ("/")를 사용하여 수행됩니다. 여기

는 MSDN에서 예이다 : 상기 실시 예 첫 번째 행

<Button Content="{Binding }" /> 
<Button Content="{Binding Path=/}" /> 
<Button Content="{Binding Path=/Description}" /> 

컬렉션 결합, 두 번째 행은 컬렉션의 현재 항목에 결합하고, 세 번째 행은 컬렉션에서 현재 항목의 Description 속성에 바인딩.

예제는 MSDN 문서에서 다음과 같습니다. Binding to Collections - 현재 항목 포인터을 찾습니다.

관련 문제