Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从选定的ListViewItems中获取名称?_C#_Wpf_Xml_Data Binding_Listview - Fatal编程技术网

C# 如何从选定的ListViewItems中获取名称?

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

我有一个与树视图数据绑定的ListView,树视图数据绑定到XmlDataProvider。在列表视图中,您可以一次选择多个项目。我的问题是我需要知道选择了哪些项目。如何从ListViewItems中获取名称

XAML:

将返回类型(很可能是ListViewItem)。如果该类型为XmlNode,则需要强制转换该类型

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
             }
         }
     }
}