【发布时间】:2017-07-25 18:50:16
【问题描述】:
我正在将我自己班级的项目添加到ListView(列表视图已适当设置绑定):
_listView.Items.Add(new ProblemsListItem());
我有一个MouseDoubleClick 处理程序,它获取一个被点击的ListViewItem:
void onProblemDoubleClick(object sender, MouseButtonEventArgs e)
{
ListViewItem item = FindVisualParent<ListViewItem, ListView>(e.OriginalSource as DependencyObject);
}
public static TParent FindVisualParent<TParent, TLimit>(DependencyObject obj) where TParent : DependencyObject
{
while (obj != null && !(obj is TParent))
{
if (obj is TLimit)
return null;
obj = VisualTreeHelper.GetParent(obj);
}
return obj as TParent;
}
我的问题是:如何将此 ListViewItem 转换为我的 ProblemsListItem 对象,或从项目中获取此对象?
我尝试从ListViewItem 继承ProblemsListItem。然后我当然可以在处理程序中将item 转换为ProblemsListItem 类型,但这完全破坏了ListView:所有列都是空的,它没有被正确填充。
【问题讨论】:
-
从 SelectedItem 到 ProblemsListItem 的简单转换将起作用。
-
@VasileMarianFălămaş:
SelectedItem是什么?我这里只有ListViewItem,不能转换成ProblemsListItem。 -
ListViewItem.DataContext不是包含ProblemsListItem吗?