Tag: listview

确定在执行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论坛问题 ,但我仍然不确定如何真正做到这一点,因为这些文章似乎都不适合我的情况。 有没有更好的方法将点击的项目传递到上下文菜单? 谢谢!

列出从在线FTP目录到列表视图C#的所有文件

我和其他正在阅读此列表的人如何将所有文件从在线目录下载到列表视图? 这是要列出的本地目录的代码我想知道是否有办法使它连接到FTP网站并列出文件? FolderBrowserDialog folderPicker = new FolderBrowserDialog(); if (folderPicker.ShowDialog() == DialogResult.OK) { ListView1.Items.Clear(); string[] files = Directory.GetFiles(folderPicker.SelectedPath); foreach (string file in files) { string fileName = Path.GetFileNameWithoutExtension(file); ListViewItem item = new ListViewItem(fileName); item.Tag = file; ListView1.Items.Add(item); } } 我已经使用了这段代码,但我似乎无法让它工作,它没有出现错误,但它没有列出网络服务器上的文件? private void ConnectBtn_Click(object sender, EventArgs e) { ListDirectory(); } public string[] ListDirectory() { var list = […]

如何使用searchstring搜索数据表中的行?

嗨,我想在我的DataTable中搜索行,我试试这个: protected void imggastsuche_Click(object sender, EventArgs e) { string searchstring = txtgastsuche.Text; DataTable tb = DataBaseManager.GetDataTable(mysqlconnectionstring); DataRow[] foundRows = tb.Select(“FIRSTNAME,LASTNAME,NAME,COMPANY,TIMEFROM,TIMETO,CREATOR Like ‘%” + searchstring + “%'”); tb = foundRows.CopyToDataTable(); this.ListView.DataSource = tb; this.ListView.DataBind(); } 但我的字符串中有错误。 如果我想搜索这个列,我该怎么办?

在ListView控件中闪烁(OwnerDraw,Virtual)

此问题可能被视为使用ownerdraw和virtualmode在listview中闪烁的后续行动。 我在Virtual mode有一个ListView控件,我尝试执行自定义绘图。 项目渲染通过以下方法覆盖完成: protected override void OnDrawItem(DrawListViewItemEventArgs eventArgs) 如引用的问题所述,自定义绘图会在鼠标hover事件上引入闪烁。 调试器告诉我这是由于过多的自定义绘制事件被触发而发生的。 现在 – 引用问题的接受答案告诉我们: 这是.NET的ListView中的一个错误,你不能通过双缓冲绕过它。 那么, 这些信息有多可靠? 这真的是一个错误吗? 或者我们可能只是试图切断部分消息并希望它不会改变可见行为? 这是真的,如果我在Virtual Mode,拥有我的所有者绘图例程的ListView Virtual Mode,我可以抑制这些Custom Draw事件,只在WM_PAINT执行我的绘图,或者,在某些情况下这可能是不正确的? System.Windows.Forms控件能够在不改变它的初始行为的情况下完成WM_PAINT所有绘制,有哪些先决条件?

在C#中向ListView添加项目太慢

我想将项目添加到listview控件。 这是一些代码: this.lView.ListViewItemSorter = null; ListViewItem[] lvitems = new ListViewItem[ListMyObjects.Count]; int index = 0; foreach (MyObject object in ListMyObjects) { ListViewItem item = new ListViewItem(); item.Text = object.Name; lvitems[index++] = item; } this.lView.BeginUpdate(); this.lView.Items.AddRange(lvitems); // Slow in here with debugger this.lView.EndUpdate(); 我只添加了大约1000件物品,但速度非常慢。 它花了大约15秒完成。 为什么有人知道原因? 预先感谢。 编辑 : 我以前定制过listview。 public partial class MyListView: ListView { public […]

在滚动结束时使用LoadMoreItemsAsync创建ListView

我在Windows Phone 8.1应用程序中有一个ListView ,我可以有1000个或更多的结果,所以每次滚动到底时我需要实现一个Load Morefunction,或者一些其他逻辑和自然方式触发添加更多列表中的项目。 我发现ListView支持ISupportIncrementalLoading ,并发现了这个实现: https : //marcominerva.wordpress.com/2013/05/22/implementing-the-isupportincrementalloading-interface-in-a-window-store-app/这是我找到的更好的解决方案,因为它没有指定类型,即它是通用的。 我对此解决方案的问题是,当ListView被加载时, LoadMoreItemsAsync运行所需的所有时间,直到获得所有结果,这意味着用户不会触发加载更多。 我不确定是什么使得LoadMoreItemsAsync触发器,但是有些东西是不对的,因为它假设当我打开页面并在现场加载所有项目时,没有我做任何事情或任何滚动。 这是实施: IncrementalLoadingCollection.cs public interface IIncrementalSource { Task<IEnumerable> GetPagedItems(int pageIndex, int pageSize); void SetType(int type); } public class IncrementalLoadingCollection : ObservableCollection, ISupportIncrementalLoading where T : IIncrementalSource, new() { private T source; private int itemsPerPage; private bool hasMoreItems; private int currentPage; public IncrementalLoadingCollection(int type, […]

Xamarin表单按钮命令绑定在ListView中

我有以下问题,在我看来我有一个Listview。 在这个列表视图中,我想有两个按钮。 一个用于编辑项目,一个用于删除它。 这是我在XAML中的列表视图 在我的ViewModel中是我需要的一切,我使用不在listview中的按钮测试了命令,它完美无缺。 如果我将鼠标hover在绑定上,则会显示消息“无法解析符号’…’”

在ListView上添加“加载”-image

我想在所有项目加载时添加“加载” – 我的ListView顶部的Image ,如果有很多项目被加载,我仍然需要一个很好的用户体验。 因此,我想要一个浮动Image (动画GIF?)在我的ListView 。 如何解决这个问题,一旦你有浮动图像或控制,你如何使GIF动画?

MVVM:在跟踪IsSynchronizedWithCurrentItem时绑定到List IsSelected

我通过绑定到IsSelected来跟踪MVVM设计中的ListView选择更改。 我还需要通过启用IsSynchronizedWithCurrentItem来跟踪当前项。 我发现当我有两个ListView绑定到同一个集合时,我得到了InvalidOperationException : “集合被修改;枚举操作可能无法执行。 ”这似乎是两个ListView之间的同步错误; 一个是触发PropertyChanged事件而另一个是更新Selector? 除了放弃使用IsSynchronizedWithCurrentItem并自行管理之外,我无法弄清楚如何解决这个问题。 有任何想法吗? 谢谢。 ViewModel和代码背后: public class Item : INotifyPropertyChanged { public string Name{ get; set; } public bool IsSelected { get { return isSelected; } set { isSelected = value; OnPropertyChanged(“IsSelected”); } } private bool isSelected; public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string propertyName) { if (PropertyChanged != […]

Windowsapp store应用:如何使用可扩展/可扩展的ListItems制作ListView?

我在C#Windowsapp store应用程序中有一个包含项目的Listview(这就是你所说的那些?我听说它们不再被称为Metro应用程序)。 类似于Android中的ExpandableListView ,我希望能够点击该列表项目的列表项目(而不是按钮)进行扩展, 点击展开的列表项目以使其崩溃,如果您点击另一个列表项目,则当前展开的列表项目将会崩溃,另一个将扩大。 在我的特定情况下,我有一个DataTemplate用于listitems的展开和非展开视图。 我已经看到Android的ExpandableListView可以使用附加信息扩展listitem(来自WPF的Expander做类似的事情),而不是用更大的项目替换它 ,但在Windowsapp store应用程序中是否有一个通用的解决方案? 如果不是,最接近的等价物是什么? 如下图所示,我想知道是否有一个组件可以这种方式扩展listitems,如果没有,我有哪些替代方案: