title author date CreateTime categories
WPF ListBox 的选择
lindexi
2019-01-25 21:43:17 +0800
2018-2-13 17:23:3 +0800
WPF

本文告诉大家在 ListBox 做选择时,多选时 SelectedItem 和 SelectedIndex 的值。

首先写一个界面,两个按钮和一个ListBox ,点击第一个按钮选择多个元素,点击第二个按钮就显示当前的 SelectedItem 和 SelectedIndex

    <Grid>
<ListBox x:Name="QjdckjpVemnepybg" SelectionMode="Multiple"></ListBox>
<Button Width="100" Height="100" Click="ButtonBase_OnClick"></Button>
<Button Margin="100,10,10,10" Width="100" Height="100" Click="RyltnqiUmqgwuz_OnClick"></Button>
</Grid>

在点击前需要给 ListBox 数据,请看下面

        public MainWindow()
{
InitializeComponent();
QjdckjpVemnepybg.ItemsSource = FyuzbqklBxdk; for (int i = 0; i < 100; i++)
{
FyuzbqklBxdk.Add(i.ToString());
}
} public ObservableCollection<string> FyuzbqklBxdk { get; } = new ObservableCollection<string>();

点击第一个按钮选择多个元素

        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
QjdckjpVemnepybg.SelectedItems.Clear();
QjdckjpVemnepybg.SelectedItems.Add(FyuzbqklBxdk[2]);
QjdckjpVemnepybg.SelectedItems.Add(FyuzbqklBxdk[5]);
}

点击第二个按钮显示 SelectedItem 和 SelectedIndex

        private void RyltnqiUmqgwuz_OnClick(object sender, RoutedEventArgs e)
{
Console.WriteLine(QjdckjpVemnepybg.SelectedItem);
Console.WriteLine(QjdckjpVemnepybg.SelectedIndex);
}

可以看到,点击第一个按钮之后,SelectedItem 和 SelectedIndex 都是 2 因为他会显示多选的第一个。

如果选择的是 SelectedItem ,那么 SelectedItems 就只有 SelectedItem 的元素

      private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
QjdckjpVemnepybg.SelectedItem = FyuzbqklBxdk[2];
} private void RyltnqiUmqgwuz_OnClick(object sender, RoutedEventArgs e)
{
Console.WriteLine(QjdckjpVemnepybg.SelectedItems.Count);
foreach (var temp in QjdckjpVemnepybg.SelectedItems)
{
Console.WriteLine(temp);
}
}

如果选择是 SelectedIndex ,那么 SelectedItems 有对应序号的元素

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
QjdckjpVemnepybg.SelectedIndex = 2;
} private void RyltnqiUmqgwuz_OnClick(object sender, RoutedEventArgs e)
{
Console.WriteLine(QjdckjpVemnepybg.SelectedItems.Count);
foreach (var temp in QjdckjpVemnepybg.SelectedItems)
{
Console.WriteLine(temp);
}
}

如果这时 SelectedIndex 为 -1 ,那么 SelectedItems 没有选择元素

        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
QjdckjpVemnepybg.SelectedIndex = -1;
} private void RyltnqiUmqgwuz_OnClick(object sender, RoutedEventArgs e)
{
Console.WriteLine(QjdckjpVemnepybg.SelectedItems.Count);
foreach (var temp in QjdckjpVemnepybg.SelectedItems)
{
Console.WriteLine(temp);
}
}

如果这时的 SelectedItems 没有选择元素,那么 SelectedIndex 是 -1

如果这时没有开启多选,那么在 SelectedItem 选中元素时,SelectedItems 只有他选中的。所以一般可以通过 SelectedItems 判断当前选中的。

2019-1-25-WPF-ListBox-的选择的更多相关文章

  1. 自定义WPF ListBox的选择样式

    (下图:进行多项选择的ListBox) 首先介绍一种简单地方法:就是通过自定义SystemColors类的参数来自定义WPF ListBox选择颜色的,SystemColors的HighlightBr ...

  2. wpf ListBox删除选择项(支持多项)

    搞了个ListBox删除选择项,开始老是不能把选择项删除干净,剩下几个.后来调试一下原来是ListBox在删除一个选择项之后立即更新,选择项也有变化.结果我想了个这样的方法来删除呵呵. Departm ...

  3. WPF:自定义ListBox的选择样式

    首先介绍一种简单地方法:就是通过自定义SystemColors类的参数来自定义WPF ListBox选择颜色的, SystemColors的HighlightBrushKey和HighlightTex ...

  4. 自定义WPF ListBox的选中项样式

    首先介绍一种简单地方法:就是通过自定义SystemColors类的参数来自定义WPF ListBox选择颜色的,SystemColors的HighlightBrushKey和HighlightText ...

  5. WPF ListBox数据绑定

    本文来源 http://wshoufeng1989.blog.163.com/blog/static/202047033201282911633670/  风随影动的博客 使用数据库AllData , ...

  6. [2019.03.25]Linux中的查找

    TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...

  7. Alpha冲刺(2/10)——2019.4.25

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(2/10)--2019.4.25 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  8. WPF : ListBox的几种Template属性

    原文:WPF : ListBox的几种Template属性 属性名 属性的类名 功能 示例 Template ControlTemplate 定义控件自身的外观.其子元素的布局可以自定义,也可以由It ...

  9. WPF中如何选择合适的元数据标记?(英文)

    原文:WPF中如何选择合适的元数据标记?(英文) FrameworkPropertyMetadataOptions Enumeration:Specifies the types of framewo ...

  10. wpf listbox 选中项 上移下移

    原文:wpf listbox 选中项 上移下移 private void MoveUp_Click(object sender, RoutedEventArgs e)         {        ...

随机推荐

  1. generator (2)

    generator 的使用 第一次调用next  时  传参没有任何意义  打印不出来任何结果 function * read(){ let a = yield 1; console.log(a); ...

  2. git log的个性化设置

    --date=(relative|local|default|iso|rfc|short|raw) Only takes effect for dates shown in human-readabl ...

  3. 企业级监控软件zabbix搭建部署之zabbix server的安装

    企业级监控软件zabbix搭建部署之zabbix server的安装 zabbix线上已经应用半年多了,关于zabbix在生产环境中的使用心得,以及一些经验写下来,希望让大家少走弯路,共同学习! 环境 ...

  4. web前端 在react中使用移动端事件,学习笔记

    一  移动端事件的使用:           onTouchStartCapture        onTouchStart           onTouchMoveCapture       on ...

  5. Dump文件的生成

    一.Windows系统的任务管理器里抓dump 启动任务管理器,选中某个进程,右键,弹出菜单"创建转储文件" 注意事项: 当你在64位Windows系统上抓32位进程的dmup文件 ...

  6. 3,LinkedList

    一,LinkedList简介 1,LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作. 2,LinkedList 实现 ...

  7. [CF1182F]Maximum Sine

    题意:\(f(x) = \text{abs}(\text{sin}(\frac{p}{q} \pi x))\),给定\(a,b,p,q\),求\(x\in[a,b]\)最大的\(f(x)\). 题解: ...

  8. 网站名,服务器名,url,ip,域名的区别和联系。

    平时我们可能容易混淆这几个名词含义,今天我打算捋一捋这几个概念. 我们知道,两台计算机要想互相通信,就像古代写信一样,地址必须要唯一的,不然就会出错.计算机之间通信也是一样的,要保证计算机的地址的唯一 ...

  9. mypwd实现

    实现mypwd 要求 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 步骤 查看pwd的作用man -k pwd ...

  10. p5341 [TJOI2019]甲苯先生和大中锋的字符串

    分析 TJOI白给题 建出sam,对于每个点如果它的子树siz和等于k 那么对于这个满足的点它有贡献的长度一定是一个连续区间 直接差分即可 代码 #include<bits/stdc++.h&g ...