2013-03-06 2 views
2

행이 뷰 모델에 바인딩되는 Datagrid가 있습니다.grid-row의 datacontext를 얻는 방법

첫 번째 열에는 행의 itemno에 바인딩되는 이미지 컨트롤이 있습니다. 이것은 잘 작동합니다.

이제 이미지의 더 큰 버전을 보여주는 툴팁이 필요합니다. 나는 그것이 쉽다는 것을 추측했다, 그러나 나는, 툴팁, 아마 행의 datacontext를 얻지 않는다는 것을 깨달았다.

그렇다면 행이 바인딩 된 것과 동일한 데이터에 바인딩하는 툴팁을 얻으려면 어떻게해야합니까? 아래 코드에서 툴팁의 ItemNo는 null이지만 "부모"이미지 컨트롤에서는 올바른 값을가집니다.

<DataGridTemplateColumn Header="Image" IsReadOnly="True"> 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <controls:ItemImage Width="16" Height="16" DataContext="{Binding ItemNo, IsAsync=True}" > 
             <controls:ItemImage.ToolTip> 
              <StackPanel> 
               <controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" /> 
               <Label Content="{Binding ItemNo}" /> 
              </StackPanel> 
             </controls:ItemImage.ToolTip> 
            </controls:ItemImage> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 

답변

3

기본적으로 툴팁 dataContext는 기본적으로 ItemNo로 설정되어 있습니다. 그것이 리셋 이유입니다 :

<controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" />
... 작동하지 않습니다.

그냥 DataContext="{Binding ItemNo, IsAsync=True}"

사용 snoop이 바인딩 오류 또는 이미 설정된 데이터 컨텍스트를 viewwing에 도움이 될 것입니다 제거합니다.