5

値を取得するために 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 にアクセスするには?

4

1 に答える 1

3

この要素を見つけるには、ビジュアル ツリーをナビゲートする必要があります。少し前に、これを少し簡単にするユーティリティ クラスを作成しました。Linq-to-VisualTreeを使用すると、次のように見つけることができます。

TextBox tb = dgUser.Descendants<TextBox>()
                   .OfType<TextBox>()
                   .Where(t => t.Name == "txtcount")
                   .Single();
于 2012-11-05T06:33:21.607 に答える