我有ListView
,显示一些TextBoxes
。对于每个TextBox
,我正在捕捉SelectionChanged
事件。
我的XAML文件如下所示:
<ListView>
<GridView>
...
<DataTemplate>
<TextBox SelectionChanged="Box_SelectionChanged" />
</DataTemplate>
...
</GridView>
</ListView>
我的Xaml CS文件如下所示:
private void Box_SelectionChanged(object sender, TextChangedEventArgs e) {}
在我的Box_SelectionChanged
函数中,我希望获得更新文本框的ListViewItem
。
我该怎么办?
答案 0 :(得分:5)
你可以试试这个:
将此方法添加到您的班级:
public static T FindVisualParent<T>(UIElement element) where T : UIElement
{
UIElement parent = element; while (parent != null)
{
T correctlyTyped = parent as T; if (correctlyTyped != null)
{
return correctlyTyped;
}
parent = VisualTreeHelper.GetParent(parent) as UIElement;
} return null;
}
在Box_SelectionChanged事件处理程序中调用此方法:
private void Box_SelectionChanged(object sender, RoutedEventArgs e)
{
var tmp = FindVisualParent<ListViewItem>(sender as TextBox);
}