Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表框中更多高亮显示的项目_C#_Wpf_Listbox_Highlight - Fatal编程技术网

C# 列表框中更多高亮显示的项目

C# 列表框中更多高亮显示的项目,c#,wpf,listbox,highlight,C#,Wpf,Listbox,Highlight,我有一个列表框,数据放在其中。简单的字符串,没有极端。但是,用户可以选择数据是什么,他可以选择两个不同的(!!!)对象,它们具有相同的名称 示例:它与图片连接使用。每幅画都有一个名字。用户选择图片并将其添加到列表框中。但是,如果他选择了两张同名的图片,则在列表框中选择项目时会发生这种情况: 为了避免这种情况,我该怎么做?我只想要一个突出显示和选定的项目。 列表框是在单个选择上设置的,在选择事件上,它表示只选择了一个项目。因此,它只涉及亮点。 (使用WPF,C#)为了避免这种情况,您必须在字符串

我有一个
列表框
,数据放在其中。简单的字符串,没有极端。但是,用户可以选择数据是什么,他可以选择两个不同的(!!!)对象,它们具有相同的名称

示例:它与图片连接使用。每幅画都有一个名字。用户选择图片并将其添加到列表框中。但是,如果他选择了两张同名的图片,则在列表框中选择项目时会发生这种情况:

为了避免这种情况,我该怎么做?我只想要一个突出显示和选定的项目。 列表框是在单个选择上设置的,在选择事件上,它表示只选择了一个项目。因此,它只涉及亮点。
(使用WPF,C#)

为了避免这种情况,您必须在字符串周围使用包装器;您的图片对象似乎是一个好的开始

以下示例说明了两种方法:

XAML:


代码隐藏:

using System.Windows;
using System.Windows.Media;
using System.Windows.Input;
using System.Windows.Controls;
using System.Collections.ObjectModel;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public class Picture
        {
            public string Name { get; set; }
        }

        public string Text { get; set; }
        public ObservableCollection<string> Pictures1 { get; set; }
        public ObservableCollection<Picture> Pictures2 { get; set; }

        public MainWindow()
        {
            InitializeComponent();

            Pictures1 = new ObservableCollection<string>();
            Pictures2 = new ObservableCollection<Picture>();

            DataContext = this;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Pictures1.Add(Text);
            Pictures2.Add(new Picture { Name = Text });

            list1.SelectedItem = Pictures1[0];
            list2.SelectedItem = Pictures2[0];
        }
    }
}
使用System.Windows;
使用System.Windows.Media;
使用System.Windows.Input;
使用System.Windows.Controls;
使用System.Collections.ObjectModel;
命名空间WpfApplication1
{
公共部分类主窗口:窗口
{
公开课图片
{
公共字符串名称{get;set;}
}
公共字符串文本{get;set;}
公共可见收集图片1{get;set;}
公共可见收集图片2{get;set;}
公共主窗口()
{
初始化组件();
Pictures1=新的ObservableCollection();
Pictures2=新的ObservableCollection();
DataContext=this;
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
图1.添加(文本);
图片2.Add(新图片{Name=Text});
list1.SelectedItem=Pictures1[0];
list2.SelectedItem=Pictures2[0];
}
}
}
您还可以绑定更多信息,如扩展名、大小或任何有助于用户的属性


希望这有帮助……

您能给我们展示一下您的列表框声明吗?如果只是让名称不同(添加
(1)
(2)
,…)?列表框声明:不幸的是,这会给用户带来混乱
using System.Windows;
using System.Windows.Media;
using System.Windows.Input;
using System.Windows.Controls;
using System.Collections.ObjectModel;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public class Picture
        {
            public string Name { get; set; }
        }

        public string Text { get; set; }
        public ObservableCollection<string> Pictures1 { get; set; }
        public ObservableCollection<Picture> Pictures2 { get; set; }

        public MainWindow()
        {
            InitializeComponent();

            Pictures1 = new ObservableCollection<string>();
            Pictures2 = new ObservableCollection<Picture>();

            DataContext = this;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Pictures1.Add(Text);
            Pictures2.Add(new Picture { Name = Text });

            list1.SelectedItem = Pictures1[0];
            list2.SelectedItem = Pictures2[0];
        }
    }
}