WPF中ListBox控件选择多个数据项

XAML:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <StackPanel>
            <TextBlock>在控件中一次选择多个数据项:</TextBlock>
            <ListBox SelectionMode="Multiple">
                <ListBoxItem>a</ListBoxItem>
                <ListBoxItem>b</ListBoxItem>
                <ListBoxItem>c</ListBoxItem>
                <ListBoxItem>d</ListBoxItem>
                <ListBoxItem>e</ListBoxItem>
            </ListBox>
            <TextBlock>在控件中使用Ctrl一次选择多个数据项:</TextBlock>
            <ListBox x:Name="lbx" SelectionMode="Extended">
                <ListBox.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="Show" Click="btnShowSelectItems"></MenuItem>
                    </ContextMenu>
                </ListBox.ContextMenu>
                <ListBoxItem>张三</ListBoxItem>
                <ListBoxItem>李四</ListBoxItem>
                <ListBoxItem>王五</ListBoxItem>
                <ListBoxItem>赵六</ListBoxItem>
                <ListBoxItem>孙七</ListBoxItem>
            </ListBox>
        </StackPanel>
    </Grid>
</Window>


C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnShowSelectItems(object sender, RoutedEventArgs e)
        {
            string msg=string.Empty;
            List<string> list = new List<string>();
            if (lbx.SelectedItems != null && lbx.SelectedItems.Count > 1)
            {
                //多选
                foreach (ListBoxItem lbi in lbx.SelectedItems)
                {
                    list.Add(lbi.Content.ToString());
                }
                msg = string.Join(",", list);
            }
            else if (lbx.SelectedItems != null && lbx.SelectedItems.Count == 1)
            {
                //单选
                msg = ((ListBoxItem)lbx.SelectedItem).Content.ToString();
            }
            else
            {
                //没有选中任何项
            }
            MessageBox.Show(msg);
        }
    }
}

 

效果:

 

 

 

转载于:https://www.cnblogs.com/527289276qq/p/4370006.html

好的,我可以为您介绍如何使用WPFListBox控件将浏览节点的数据列表显示出来。 在WPF,可以使用ListBox控件来显示列表数据。下面是使用ListBox控件将浏览节点的数据列表显示出来的步骤: 1. 在XAML代码添加ListBox控件: ``` <ListBox x:Name="NodeList" ItemsSource="{Binding}" /> ``` 2. 在C#代码设置ListBox的数据源: ``` var nodeId = Opc.Ua.NodeId.Parse("ns=2;s=MyNode"); var browseDesc = new Opc.Ua.BrowseDescription(); browseDesc.NodeId = nodeId; browseDesc.BrowseDirection = Opc.Ua.BrowseDirection.Forward; browseDesc.ReferenceTypeId = Opc.Ua.ReferenceTypeIds.References; browseDesc.IncludeSubtypes = true; browseDesc.NodeClassMask = 0; browseDesc.ResultMask = Opc.Ua.BrowseResultMask.All; var nodes = client.Browse(browseDesc); NodeList.ItemsSource = nodes; ``` 3. 在XAML代码设置ListBox的显示模板: ``` <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding DisplayName}" /> <TextBlock Text="{Binding NodeClass}" /> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> ``` 在这个例子ListBox的每个项包含两个TextBlock控件,分别显示节点的DisplayName和NodeClass属性。 4. 运行程序并查看结果:现在可以运行程序并查看ListBox显示的浏览节点的数据列表。 需要注意的是,ListBox控件的数据源必须是一个可枚举的对象,例如List或者数组。在本例,使用了OPC UA客户端库的BrowseResultCollection类作为数据源。 希望这些信息能够帮助您使用WPFListBox控件将浏览节点的数据列表显示出来。如果您还有其他问题,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值