如何访问silverlight3 DataGrid单元格控件

时间:2010-01-19 14:24:38

标签: silverlight-3.0 datagrid cell silverlight-toolkit

如何以编程方式访问silverlight3 DataGrid单元格值?

我知道我可以使用DataContext访问数据,但我需要访问特定单元格中包含的控件。

如果列模板是这样的:

                    <data:DataGridTemplateColumn Header="Header text">
                        <data:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox TextAlignment="Right" x:Name="myTxt" Text="{Binding Path=Val1, Mode=TwoWay}" TextWrapping="Wrap" Width="50" HorizontalAlignment="Left"/>
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellTemplate>
                    </data:DataGridTemplateColumn>

如何获得对myTxt控件的引用?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用它来检查可视化树:

    private void GetVisualTreeChildren(DependencyObject element, int depth)
    {
        string spacer = new string(' ', depth * 2);
        System.Diagnostics.Debug.WriteLine(spacer + element.GetType().ToString());
        TextBox txt = element as TextBox;
        if (txt != null)
        {
            ...
        }

        int childCount = VisualTreeHelper.GetChildrenCount(element);
        for (int i = 0; i < childCount; i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(element, i);
            GetVisualTreeChildren(child, depth + 1);
        }
    }

也许你可以根据自己的需要调整它?