2012-11-05 3 views
2

값을 얻기 위해 DataGridTemplateColumn의 컨트롤에 액세스하는 방법?값을 얻기 위해 DataGridTemplateColumn에서 컨트롤에 액세스하는 방법?

<DataGrid HeadersVisibility="None" Name="dgUser" Grid.Row="0" Grid.Column="0" AutoGenerateColumns="False" ItemsSource="{Binding}" 
CanUserAddRows="False" CanUserDeleteRows="False" CanUserSortColumns="False"> 
           <DataGrid.Columns> 
            <DataGridTemplateColumn Width="*" Header="" IsReadOnly="True"> 
             <DataGridTemplateColumn.CellTemplate> 
              <DataTemplate> 
               <StackPanel Orientation="Horizontal" Margin="10,0,0,0" Grid.Column="0" Name="partcount"> 
                <TextBlock Margin="0,0,5,0" Text="Count"/> 
                <TextBox Margin="0,0,5,0" MinWidth="50" Width="Auto" Name="txtcount" Text="{Binding Count}"/> 
               </StackPanel> 
              </DataTemplate> 
             </DataGridTemplateColumn.CellTemplate> 
            </DataGridTemplateColumn> 
     </DataGrid.Columns> 
          </DataGrid> 

방법 txtcount에 액세스 할 수 :

은이 코드를 사용하고 있습니다?

답변

0

이 요소를 찾으려면 시각적 트리를 탐색해야합니다. 이 좀 더 쉽게 다시 다음과 같이 당신이 그것을 찾을 수 있습니다 Linq-to-VisualTree를 사용하는 동안 나는 유틸리티 클래스 A를 썼다 :

TextBox tb = dgUser.Descendants<TextBox>() 
        .OfType<TextBox>() 
        .Where(t => t.Name == "txtcount") 
        .Single(); 
+0

무엇 셀 것 결과로 텍스트 상자 쇼, 오른쪽 첫 번째 행에 하나? – HichemSeeSharp

+0

오류 : 오류 'System.Windows.Controls.DataGrid'에 'Descendants'에 대한 정의가없고 'System.Windows.Controls.DataGrid'형식의 첫 번째 인수를 수락하는 'Descendants'확장 메서드가 없습니다. (using 지시문이나 어셈블리 참조가 누락 되었습니까?) – user1799345

+1

@ user1799345 Descendants()는 그가 작성한 확장 메서드입니다. 그가 제공 한 링크를 따르십시오. – Vale

관련 문제