我是WPF的新手,所以我认为这是一个简单的问题。问题是我无法获取文本框名称。文本框位于GridView中。它有什么解决方案吗? 文本框位于DataTemplate下。
XAML
<GridViewColumn.CellTemplate >
<DataTemplate >
<StackPanel >
<TextBox x:Name="txtPurchasePrice"
Width="60"
TextChanged="txtPurchasePrice_TextChanged" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
答案 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.
}
}