在wpf中获取文本框名称

时间:2014-03-11 07:48:29

标签: c# wpf textbox

我是WPF的新手,所以我认为这是一个简单的问题。问题是我无法获取文本框名称。文本框位于GridView中。它有什么解决方案吗? 文本框位于DataTemplate下。

XAML

<GridViewColumn.CellTemplate >
    <DataTemplate >
        <StackPanel >
            <TextBox x:Name="txtPurchasePrice" 
                     Width="60" 
                     TextChanged="txtPurchasePrice_TextChanged" />
        </StackPanel>
    </DataTemplate>
</GridViewColumn.CellTemplate>

1 个答案:

答案 0 :(得分:2)

不幸的是,这样做的方法就像访问命名对象一样简单。一个选项是迭代父控件的子对象并根据已知值检查文本字段

private void Button_Click(object sender, RoutedEventArgs e)
{
    GetTextBox(datagrid);
}

public void GetTextBox(Visual visual)
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(visual); i++)
    {
        Visual childVisual = (Visual) VisualTreeHelper.GetChild(visual, i);
        if (childVisual is TextBox)
            MessageBox.Show("textbox Found");
        // Recursively enumerate children of the child visual object.
    }
}