C# 如何从选定的ListViewItems中获取名称?
我有一个与树视图数据绑定的ListView,树视图数据绑定到XmlDataProvider。在列表视图中,您可以一次选择多个项目。我的问题是我需要知道选择了哪些项目。如何从ListViewItems中获取名称 XAML: 将返回类型(很可能是ListViewItem)。如果该类型为XmlNode,则需要强制转换该类型C# 如何从选定的ListViewItems中获取名称?,c#,wpf,xml,data-binding,listview,C#,Wpf,Xml,Data Binding,Listview,我有一个与树视图数据绑定的ListView,树视图数据绑定到XmlDataProvider。在列表视图中,您可以一次选择多个项目。我的问题是我需要知道选择了哪些项目。如何从ListViewItems中获取名称 XAML: 将返回类型(很可能是ListViewItem)。如果该类型为XmlNode,则需要强制转换该类型 private void listViewCards_KeyDown(object sender, KeyEventArgs e) { IList selectedList
private void listViewCards_KeyDown(object sender, KeyEventArgs e)
{
IList selectedListViewItems = listViewCards.SelectedItems;
if (selectedListViewItems.Count > 1)
{
foreach(var node in ((ListViewItem)selectedListViewItems).Tag as XMLNode)
{
// Find your node in whatever type contains your xml
// Do Some deleting or what have you.
}
}
}
类型的对象
“System.Windows.Controls.SelectedItemCollection”
无法转换为
“System.Windows.Controls.ListViewItem”
试试这个:
private void listViewCards_KeyDown(object sender, KeyEventArgs e)
{
IList selectedListViewItems = listViewCards.SelectedItems;
if (selectedListViewItems.Count > 1)
{
//delete all selected items from xml:
var collection = selectedListViewItems.Cast<XmlNode>(); //assuming your underlying data is XmlNode
foreach(XmlNode node in collection)
{
//do whatever you want to do with node
if (node.InnerText.Equals( ??? ))
{
//mark for deleting
}
}
}
}
private void listViewCards\u KeyDown(对象发送方,KeyEventArgs e)
{
IList selectedListViewItems=listViewCards.SelectedItems;
如果(selectedListViewItems.Count>1)
{
//从xml中删除所有选定项:
var collection=selectedListViewItems.Cast();//假设基础数据是XmlNode
foreach(集合中的XmlNode节点)
{
//对节点执行任何您想执行的操作
if(node.InnerText.Equals(???))
{
//删除标记
}
}
}
}
相关:类型为“System.Windows.Controls.SelectedItemCollection”的对象无法转换为“System.Windows.Controls.ListViewItem”的对象太棒了,我很接近了,一小时前我尝试了以下操作:foreach(selectedListViewItems.Cast()中的对象节点)
listViewCards.SelectedItems;
private void listViewCards_KeyDown(object sender, KeyEventArgs e)
{
IList selectedListViewItems = listViewCards.SelectedItems;
if (selectedListViewItems.Count > 1)
{
foreach(var node in ((ListViewItem)selectedListViewItems).Tag as XMLNode)
{
// Find your node in whatever type contains your xml
// Do Some deleting or what have you.
}
}
}
private void listViewCards_KeyDown(object sender, KeyEventArgs e)
{
IList selectedListViewItems = listViewCards.SelectedItems;
if (selectedListViewItems.Count > 1)
{
//delete all selected items from xml:
var collection = selectedListViewItems.Cast<XmlNode>(); //assuming your underlying data is XmlNode
foreach(XmlNode node in collection)
{
//do whatever you want to do with node
if (node.InnerText.Equals( ??? ))
{
//mark for deleting
}
}
}
}