Tag: 列表框

绑定到ObservableCollection的列表框不会更新

我使用ObservableCollection来存储Windows的环境变量。 class VariableVieWModel { ObservableCollection vars; public ObservableCollection Variables { get { return vars; } set { vars = value; } } public VariableViewModel() { Reload(); } public void Reload() { // Code to retrieve vars } } 此ObservableCollection绑定到ListBox。 我在GUI中添加了一个按钮来重新加载变量,在点击时,它调用Reload()过程。 但是,ListBox内容不会更改,并且在调用Reload()时我无法再将项添加到列表中。 在构造函数下,一切正常。 ListBox XAML: 我尝试使用PropertyChanged作为UpdateSource触发器并设置大多数模式。 public void Reload() { vars = new ObservableCollection(); RegistryKey systemVarKey […]

在WPF中的code-beind中为ListBox创建ItemTemplate

我正在尝试以编程方式为ListBox创建一个ItemTemplate,但它不起作用。 我知道在XAML中我可以有类似的东西: 但是当我试图以编程方式获得上述结果时,我遇到了一个绑定TextBox.TextProperty的问题: var textblock = new FrameworkElementFactory(typeof(TextBlock)); // Setting some properties textblock.SetValue(TextBlock.TextProperty, ??); var template = new ControlTemplate(typeof(ListBoxItem)); template.VisualTree = textblock; 请帮我解决这个问题。 我在网上找不到任何关于它的东西。 提前致谢。

当要滚动的项目太多时,Windows窗体列表框会溢出

我正在构建一个基于后缀树的索引器应用程序,这使我能够非常快速地索引整个文档和搜索字符串,子字符串等。 我正在做的是在文本框中输入一个字符串,按下按钮,并运行查询后缀树的函数,并将字符串的所有出现位置添加到列表框中。 所以列表框里面有很多整数。 通常情况下,这很好。 例如,搜索“向导”或“甘道夫”或“霍比特人”(我将FOTR索引为测试:D)工作正常且花花公子。 但是,我现在用字母e试试。 问题是字母e的位置确实列在列表框中。 全部88974个。 但是,当我通过拖动滚动按钮向下滚动时,当我在项目60000左右时,列表框似乎循环返回到顶部。 由于我尝试滚动页面并且一切正常,因此问题更加严重。 我知道滚动88974(基于listbox.Items.Count)项目有点极端,但从逻辑上讲,没有理由存在这样的问题。 感谢您阅读这篇文章! 编辑:对所有回答的人,谢谢你的回答。 我最终使用listview实现了它,并且速度更快,可以很好地保存很多项目。 谢谢!

如何在SilverLight 3项目中刷新ListBox.ItemsSource?

我是我的XAML,我有一个ListBox定义 在代码隐藏中,我定义了一个模块级的ObservableCollection设备。 private ObservableCollection devices = new ObservableCollection(); 在OnNavigatedTo事件中,我将集合绑定到列表框 lstStatus.ItemsSource = devices; 该集合很可能不会增长或缩小,但其内部的对象会一直在变化。 无论出于何种原因,当我执行以下代码时,列表不会更新: Device selectedDevice = null; foreach (Device dv in devices) { if (dv.IsTrunk) { selectedDevice = dv; break; } } if (selectedDevice != null) selectedDevice.StatusName = DateTime.Now.ToString(); else throw new Exception(); 事实上,我能够让它工作的唯一方法就是伪造它,从列表中删除项目然后再添加它。 显然不是长期的解决方案。 我错过了什么?

提高WPF Listbox的绘制速度

我在WPF中创建了一个Listbox,我在用户单击Generate时随机绘制2D点。 在我的情况下,当用户点击Generate时,我将绘制几千个点。 我注意到当我产生大约10,000或甚至5,000点时,它需要永远。 有没有人就如何加快这个问题提出建议? 是否有可能仅在生成所有点后才触发更新,假设由于ObservableCollection它每次将新点添加到集合时都尝试更新列表框视觉效果。 MainWindow.xaml.cs using System; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; using System.Windows.Threading; namespace plotting { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window, INotifyPropertyChanged { public MainWindow() { InitializeComponent(); this.DataContext = this; CityList = new ObservableCollection { new City(“Duluth”, 92.18, […]

搜索包含字符串的项目的列表框

背景 :我正在构建一个数据库应用程序来存储有关我的大量电影collections的信息。 列表框包含数百个项目,因此我决定实现一个搜索function,该function将突出显示包含特定字符串的所有项目。 有时很难记住整部​​电影的标题,所以我认为这会派上用场。 我在Microsoft网站上发现了这个有用的代码,它突出显示了包含特定字符串的列表框中的所有项目。 如何修改它以完全搜索每个字符串? 目前,代码仅搜索以搜索字符串开头的项目,而不是查看它是否包含其他任何地方的搜索字符串。 我在Google上遇到了一个listbox.items.contains()方法,虽然我不知道如何为它转换我的代码。 http://forums.asp.net/t/1094277.aspx/1 private void FindAllOfMyString(string searchString) { // Set the SelectionMode property of the ListBox to select multiple items. listBox1.SelectionMode = SelectionMode.MultiExtended; // Set our intial index variable to -1. int x =-1; // If the search string is empty exit. if (searchString.Length != 0) { // Loop […]

ListBox以彩色插入项目

我使用ListBox插入文本,就像You add Michael in your database一样, You delete Michael ,… listBox1.Items.Insert(0,”You add ” + name + ” in your database\n”); 它工作正常。 如何将颜色设置为黑色(插入)和红色(删除)? 我试过这个: public class MyListBoxItem { public MyListBoxItem(Color c, string m) { ItemColor = c; Message = m; } public Color ItemColor { get; set; } public string Message { get; set; } } […]

绑定数据更改时Winforms列表框不更新

下图显示了我的代码的工作原理。 当我按下按钮2时,列表框会更新,但不会在我按下按钮1时更新。 为什么? 伪代码http://sofzh.miximages.com/c%23/mj69oj.gif 问题线程是否相关? 如果是,我应该在哪里添加对(Begin)Invoke的调用? 需要注意的一件有趣的事情是,如果我先按button1然后按下按钮2,当我点击button2时会显示button1点击生成的数据。 所以似乎doFoo生成的数据在某处缓冲,然后在按下button2后推送到列表框。 编辑: 我尝试将AddNumber添加到表单代码中,并在listBox1.InvokeRequired返回true时添加对Invoke的调用。 这解决了问题,但不是最好的设计。 我不希望GUI必须“担心”如何将项添加到模型的一部分列表中。 如何在添加到列表类内部列表的同时保持逻辑,同时在列表更改时仍然更新gui? 编辑2: 现在我们已经确认这是一个线程问题,我已经更新了图像,以更接近地反映我正在处理的实际代码的设计。 虽然Lucero的建议仍然解决了这个问题,但我希望能找到一些不需要表格来了解dll或CDllWrapper的东西。 模型(ListBoxDataBindingSource等)应该对视图一无所知(列表框,按钮,标签等)

如何在ListBox中的每个ListBoxItem之间放置一个分隔符?

这是我的XAML: 如果没有放置矩形并在DataTemplate内部给它一种颜色,那么ListBox是否有某种方式可以在每个项目之间进行原生设置?

WPF ListBox数据绑定和事件

我的问题很简单。 我有一个ListBox,包含Thumnails(图片) <Image Source="{Binding Path=absolutePath}" MouseLeftButtonDown=/> 我想显示一个图像,但作为一个新的StackOverFlow用户,我不能。 你可以在这里找到图像: http://sofzh.miximages.com/c%23/www.freeimagehosting.net (对于那些不信任我的人,我在这里解释图像的内容:左边是缩略图列表(垂直显示),右边有一个更大的图像,默认对应一个大图像第一个缩略图)。 当我点击缩略图(左侧)时,右侧的大图像应该由我点击的图像更新。 由于我是WPF的新手,我的方法可能与ListBox完全错误。 请WPF大师告诉我光明!