Tag: listview

WPF ListView键盘导航问题

我有这样的列表视图 列表显示: ——— 芒果 橙子 葡萄 葡萄 葡萄 苹果 草莓 每当我使用downarrow进行导航时,BlueHighlight会在第一个Grapes处停顿,一个虚线的矩形从第二个葡萄开始,然后停留在第三个葡萄,然后BlueHighlight从Apple恢复。 这似乎很奇怪,当导航向上时,它变得更加奇怪。 它从Apple跳到Orange或芒果。 这是由于虚拟化吗? 似乎只有重复数据(葡萄)才会产生问题。 任何帮助?

使用数据绑定处理样式

重写 我有一个接收文件的应用程序。 此文件包含大量可编辑内容。 此内容有多种可能的类型(即布尔复选框,文本框等)。 问题是,这些值可以是单独的,也可以是一个组(最多8个),因此它们可以是数组。 我们将这些值绑定到ListView ,并使用DataTemplates显示它们。 实际上,我从数组列表中创建了ListView 。 这些数组中的项需要是数据绑定和正确设置样式(例如,布尔数组需要创建复选框,而字符串数组需要文本框)。 每个创建的元素都需要放入ListView的列中。 当前样式使用DataTemplates与数据绑定,即 对输入数组中的每个值重复此操作,因此您有Value[1] , Value[2]等。 这意味着重复几乎相同的代码8次,然后对下一种类型执行相同的操作。 由于存在大量输入类型,这意味着重复代码的数量是荒谬的。 我的问题是: 有没有更好的方法来做到这一点,所以我们不必重复数据模板,同时继续使用列? 顺便说一句,我使用的是.NET 3.5。 行如何显示的示例。 每个元素都在自己的列中。 combobox是从arrays构建的。 编辑示例DataTemplate: 示例图: 我有一个ViewModel。 此ViewModel具有List,由ItemData组成。 ItemDataData有一个名为Values的数组。 List已绑定到View。 我们需要根据我们访问的ItemData的属性选择要使用的DataTemplate: 一个名字 选项arrray中的一个或多个。 目前,我们在ListView中显示List。 生成ListView ,列具有附加到其CellTemplate的不同DataTemplates ,每个索引一个,总共8个DataTemplates。

如何更新ListView的选定项目?

我有一个ListView,它显示多行ListViewItems。 用户可以通过单击“编辑”后打开的对话框编辑其中一个项目。 当对话框关闭时,我想修改所选的ListViewItem,使其反映新的设置。 以下是我目前更新项目的方式: private void btnEditSnmpV3Setting_Click(object sender, EventArgs e) { if (lstVwSNMPv3Settings.SelectedItems.Count > 0) { ListViewItem selectedItem = lstVwSNMPv3Settings.SelectedItems[0]; NetworkDiscoverySnmpSetting settings = (NetworkDiscoverySnmpSetting)selectedItem.Tag; NetworkDiscoverySnmpV3SettingsDialog dialog = new NetworkDiscoverySnmpV3SettingsDialog(settings); //Pass in the owner for centering of dialog. if (dialog.ShowDialog(this) == DialogResult.OK) { selectedItem.SubItems.Clear(); selectedItem.Text = settings.SnmpV3Username; selectedItem.SubItems.Add(settings.SecurityMode.ToString()); selectedItem.SubItems.Add(settings.AuthenticationProtocol.ToString()); selectedItem.SubItems.Add(settings.PrivacyProtocol.ToString()); selectedItem.Tag = settings; } } } […]

获取Clicked ListView项属性

我有一个带有ListView的Windows 8应用程序: 有一些Event对象(一个单独的类,其字符串属性,如EventType,Description,Time等),它是ListView的源代码: List eventlist = new List{ new Event(CONNECTION, “Disconnected”, DateTime.Now.ToString(), MONITOR, “SAMSUNG M5”, CONNECTION_IMG, RED), new Event(SYNC, “Synchronised”, DateTime.Now.ToString(), LAPTOP, “ASUS X402”, SYNC_IMG, BLUE), new Event(WARNING, “Overheated!”, DateTime.Now.ToString(), PRINTER, “CANON MP280”, WARING_IMG, YELLOW), }; EventListView.ItemsSource = eventlist; 我试图访问被点击的项目的信息,但它似乎没有设置: private void EventListView_ItemClick_1(object sender, ItemClickEventArgs e) { Event item = sender as Event; GetInfoText.Text = […]

ListViewItem覆盖默认样式中断gridviews

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

尝试在ListView中搜索匹配字符串的子项

我无法扫描ListView以找到与给定字符串匹配的子项。 这是我的代码: private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { string date = datePicker.Value.ToShortDateString(); int count = Program.booker.listView.Items.Count; for (int i = 0; i < count; i++) { ListViewItem lvi = Program.booker.listView.Items[i]; if (lvi.SubItems.Equals(date)) { MessageBox.Show("Found!", "Alert"); Program.booker.listView.MultiSelect = true; Program.booker.listView.Items[i].Selected = true; } else { MessageBox.Show("Nothing found for " + date, "Alert"); } } } […]

在WPF ListView中如何防止自动滚动?

我有一个WPF ListView,每当我点击一个只能部分可见的项目时,它就会滚动。 如何让控件不将该项目滚动到视图中(而只是选择部分可见的项目)? 从此控件执行拖动时,此行为非常烦人。 谢谢。 补充:我正在寻找一种解决方案,以便在单击控件认为不完全可见的内容时保持控件本身不滚动。 通常这是几个像素,并且滚动不是必需的。

ListView中有比我需要的空间更多的空间

我正在使用StackLayout和ListView来显示视图的某些部分,但ListView占用的空间比我需要的多,并且在列表的最后一行和配置文件延续之间留下了空白。 看来我的ListView有比真实列表的长度更多的行,或者它有一个固定的高度,我不知道……这是我的XAML: 我该如何解决? 我看到人们使用HasUnevenRows=”True”但它对我不起作用。

可编辑的WPF ListView

当用户双击某个项目时,我想使ListView可编辑。 我意识到网上有很多样本,但是,这些都是基于IsSelected属性,而不是处理双击事件。 任何想法或指针? 更新: 所以我遇到的另一个问题是,如何才能获得有问题的ListViewitem的数据模板中的ListViewitem ? 我迷路的地方是我需要进入控件的位置,根据是否正在编辑项目来启用或禁用控件。 目前, ListView数据模板如下所示: 引用的样式如下所示: BoolToVisibilityConverter是ListViewItem的IsSelected属性的转换器,然后确定ListViewItem的Visibility 。 从当前的XAML标记中可以看出,编辑控件将在项目选择时激活(变为可见),而不是项目双击。 更新2:到目前为止,所有建议只能使我解决方案的一半。 有没有人有一个可行的解决方案,如何访问我需要使可见/不可见的实际控件? 我会将答案标记为解决方案!

WPF – GridView.GridViewColumn每行两行?

您好,有可能有一个ListView – > ListView.View – > GridView – > GridViewColumn每行“两行”。 例如。 第1栏| 栏目2 行1 blah | 数据 胡说 行2等| 更多 我尝试使用Cell模板失败,但是当手动调整其包含列时,模板内的项目不会resize。 码: 有任何想法吗? 编辑:这是使用MVVM所以没有代码背后只有一个有界的ViewModel