Tag: listviewitem

ListViewItem覆盖默认样式中断gridviews

我想知道是否有人遇到过这种情况。 基本上我要做的是覆盖默认的listviewitem来自定义所选的背景/前景。 我的工作一切都很好,花花公子。 问题是,我注意到在我已经实现了网格视图的列表视图中,列被破坏了。 我不确定是什么打破这个。 我的覆盖默认样式的方法是使用blend来通过编辑模板副本来获得完整样式。 根据需要修改它。 应用它。 这几乎就是它的样子。 有什么想法吗?

如何确定单击ListView项的哪个子元素?

我正在开发XAML和C#中的Windows Phone 8.1应用程序。 我有一个ListView从绑定列表中获取其项目并通过DataTemplate显示它们。 现在,在这个DataTemplate中有多个子元素,当用户点击列表中的项目时,我希望能够确定他实际触摸的子元素。 根据具体情况,应用应该在项目中展开包含更多详细信息的视图,或者导航到另一个页面。 ListView的ItemClick事件处理程序是ListView_ItemClick(对象发送者,ItemClickEventArgs e),我认为e.OriginalSource可能会给我答案,但这只是给了我点击的ListItem。 我还没有尝试用按钮封装孩子并拦截他们的点击事件会有效,但我很乐意尝试任何替代方案。

如何在同一ListView中拖放项目?

考虑这是一个显示文件和文件夹的ListView,我已经为复制/移动/重命名/显示属性等编写了代码,我只需要再做一件事了。 如何在Windows资源管理器中拖放相同的ListView,我有移动和复制function,我只需要获取用户在某个文件夹中丢弃的项目或以其他方式我需要获取这两个参数来调用复制function void copy(ListViewItem [] droppedItems, string destination path) { // Copy target to destination }

在WPF ListView C#中获取第一个可见项

任何人都知道如何通过抓取ListView中的第一个可见项来获取ListViewItem? 我知道如何在索引0处获取项目,但不知道第一个可见的项目。

仅用于ListViewItem的ContextMenu

我有一个上下文菜单 – 问题是我需要它只在单击listviewitem时打开。 现在,如果我点击列表视图或标题中的任何位置,它将打开。 我已经尝试将ContextMenu添加为资源并将其应用为样式,但这会破坏命令(单击“更多信息”应该打开一个对话框窗口,这样做不起作用) 所以不确定如何将上下文菜单限制为listviewitem并使命令有效。

使用复选框windows store app c获取listview的选中项目

我正在开发一个Windows商店应用程序。 我已经实现了一个列表视图。 listview包含图像,文本块和复选框控件。 我的listview从互联网上获取数据我已经用listview和binded数据进行了xml解析到listview。 我想从listview获取所有数据,其中复选框在listview中被选中。 我的xaml代码是: listview的数据源: XDocument xmlDoc = XDocument.Parse(responseString); var Categories = xmlDoc.Descendants(“product”).ToArray(); List displaylst = new List(); //ProductData is my Class. foreach (var cat in Categories) { string prId = cat.Elements(“id_products”).Select(r => r.Value).FirstOrDefault(); List Image = cat.Descendants(“images”).Elements(“src”).Attributes(“largimage”).Select(r => r.Value).ToList(); List Image_code = cat.Descendants(“images”).Elements(“src”).Select(r => r.LastAttribute.Value).ToList(); int i = 0; foreach (string img […]

确定在执行ContextMenu MenuItem时在ListView中单击了哪个ListViewItem

我正在尝试使用列表视图中的上下文菜单来运行一些代码,这些代码需要来自哪个项目的数据。 我最初只是这样做: XAML: … C#: private void cmMetadata_Click(object sender, RoutedEventArgs e) { // code that needs item data here } 但我发现原始listview项目无法通过这种方式访问​​。 我已经阅读了一些关于如何解决这个问题的策略,比如拦截MouseDown事件并将一个私有字段设置为被点击的listviewitem,但这并不适合我,因为它似乎有点hacky传递数据办法。 WPF应该很容易,对吧? :)我已经阅读了这个问题和这个MSDN论坛问题 ,但我仍然不确定如何真正做到这一点,因为这些文章似乎都不适合我的情况。 有没有更好的方法将点击的项目传递到上下文菜单? 谢谢!

为什么SubItems.Clear()也删除Name属性?

我在详细模式(.NET 4.0,在Windows 7上运行)中使用WinForms ListView,我有一个需要清除特定项目中的子项的函数。 不幸的是,当我这样做时,它也清楚了这个名字: item.Name = “TESTNAME”; item.SubItems.Clear(); MessageBox.Show(item.Name); //shows nothing 在调试器中我跟踪了它,我查看了MSDN上的文档并且它没有用, 清除:从集合中删除所有子项和父ListViewItem。 除了ListViewItem仍然非常存在,因为稍后在函数中我能够再次添加SubItems! 当然,我不必: while(item.SubItems.Count > 0) { item.RemoveAt(0); } 我呢?

在C#Windows窗体中的同一ListView控件中重新排序/移动/拖放ListViewItems

我在C#2008系统Windows窗体的LargeIcon视图中有一个ListView 。 现在我想在同一个ListView中移动这个ListView的一个项目在另一个位置 – 让我们称它为“拖放”或“项目重新排序”或其他什么。 VB 6能够做到这一点,并在任何listView中自动执行此操作。 C#似乎没有此function,或者需要先编码。 为了编码,我没有经验,我在互联网上的研究中找不到任何答案。 我发现只有一个“覆盖程序”没有用。 我不需要任何其他ListView控件(如ObjectListView或其他),我不需要覆盖程序或制作新的ListView控件。 我想在Microsoft提供的ListView控件中处理它。 对此有任何想法。 代码将受到高度赞赏我相信我不能自己做,除非它是一个非常简单的单行。 PS:如果需要移动项目,我需要移动项目的所有属性(text,tag,imagekey,background-color,foreground-color,name,tooltiptext等)。 我不知道如何实现这一目标。 我发现了一个提示:它存在删除一个项目(称为.Remove ())并插入一个名为.Insert ()的插入。 但是有了这些信息,我仍然无法通过鼠标“移动”物品。 我认为listView的所有DragEvents都在这里发挥作用,但我不知道如何使用它们以及如何将所选项目( listView1.SelectedItems )复制到正确的位置并且需要首先获得此位置。

在不使用XAML的情况下将SubItems添加到ListView

如何将子项添加到ListView ? 我需要动态生成所有内容,但我发现的每个示例都使用XAML。 非WPF非常简单: ListViewItem lvi = listview.items.add(wahtever); lvi. blah blah blah 如何在不使用XAML的情况下在WPF中添加子项?