c# - 我如何从选定的 ListView 项目中获取名称?

标签 c# wpf xml data-binding listview

我有一个 ListView,它具有到 TreeView 的数据绑定(bind),而 TreeView 是数据绑定(bind)到 XmlDataProvider 的。在 ListView 中,您可以一次选择多项。我的问题是我需要知道选择了哪些项目。我如何从 ListViewItems 中获取名称?

XAML:

<ListView x:Name="listViewCards" DataContext="{Binding ElementName=treeViewCategory, Path=SelectedItem}" ItemsSource="{Binding XPath=./card/title, UpdateSourceTrigger=PropertyChanged}" KeyDown="listViewCards_KeyDown" />

C#:

private void listViewCards_KeyDown(object sender, KeyEventArgs e)
{
    IList selectedListViewItems = listViewCards.SelectedItems;
    if (selectedListViewItems.Count > 1)
    {
        //delete all selected items from xml:
        foreach (XmlNode node in xmlNode.ChildNodes)
        {
            if (node.InnerText.Equals( ??? ))
            {
                //mark for deleting
            }
        }
    }
}

最佳答案

The objekt of type "System.Windows.Controls.SelectedItemCollection" can´t convert into "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
             }
         }
     }
}


相关:How to cast a System.Windows.Controls.SelectedItemCollection?

关于c# - 我如何从选定的 ListView 项目中获取名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5339999/

相关文章:

c# - 如何使用线程异常?

WPF 滚动查看器 : Horizontal scrolling doesn't work

wpf - 在WPF中,如何确定控件在网格中的列/行?

sql - 使 ID 属性在 XML 中唯一

c# - ') 附近的语法不正确;

c# - ELMAH - 没有 HttpContext 的异常记录

c# - 如何绑定(bind)和 ConvertBack 分隔的 TextBox 字符串到 ObservableCollection<string>?

c# - 将多个相似的 XML 节点附加到 XML 文档

xml - 使用 Ace 通过 XSD 编辑 XML

c# - 表达式树和编译方法