zoukankan      html  css  js  c++  java
  • 2019-1-25-WPF-ListBox-的选择

    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 判断当前选中的。

  • 相关阅读:
    【学相伴】Nginx最新教程通俗易懂-狂神说
    Linux基础知识总结(命令行)
    CentOS7 运维
    Linux 的基础知识回顾(安装vmware) ---- No.1 后面都以Centos8 为例
    Linux sudo权限提升漏洞(CVE-2021-3156)
    Flutter开发指南之理论篇:Dart语法05(单线程模型,事件循环模型,Isolate)
    矩阵的范数
    函数导出在kvm_intel.ko,kvm.ko不共享
    python 调用内部类的两种方法
    python3 字符串方法
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085575.html
Copyright © 2011-2022 走看看