Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# 列表框上的WPF DisplayMemeberPath_C#_Wpf_Listbox - Fatal编程技术网

C# 列表框上的WPF DisplayMemeberPath

C# 列表框上的WPF DisplayMemeberPath,c#,wpf,listbox,C#,Wpf,Listbox,我对wpf列表框有问题。我的问题是,当我使用listbox项目向listbox添加项目并设置显示成员路径时,没有显示任何内容。 我想使用ListBoxItem或类似于为每个项目显式设置工具提示的东西 提前谢谢 namespace WpfApplication1 { /// <summary> /// Interaction logic for Window2.xaml /// </summary> public partial class

我对wpf列表框有问题。我的问题是,当我使用listbox项目向listbox添加项目并设置显示成员路径时,没有显示任何内容。 我想使用ListBoxItem或类似于为每个项目显式设置工具提示的东西

提前谢谢

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window2.xaml
    /// </summary>
    public partial class Window2 : Window
    {
        public Window2()
        {
            InitializeComponent();

            listbox1.DisplayMemberPath = "S";

            List<ListBoxItem> l = new List<ListBoxItem>();
            l.Add(new ListBoxItem() { Content = new Test() { S = "test1", I = 1 } });
            l.Add(new ListBoxItem() { Content = new Test() { S = "test2", I = 2 } });
            l.Add(new ListBoxItem() { Content = new Test() { S = "test3", I = 3 } });
            l.Add(new ListBoxItem() { Content = new Test() { S = "test4", I = 4 } });
            foreach (var item in l)
            {
                listbox1.Items.Add(item);
            }

        }
    }

    public class Test
    {
        public string S { get; set; }
        public int I { get; set; }
    }
}
命名空间WpfApplication1
{
/// 
///Window2.xaml的交互逻辑
/// 
公共部分类Window2:Window
{
公共窗口2()
{
初始化组件();
listbox1.DisplayMemberPath=“S”;
列表l=新列表();
l、 添加(newlistboxitem(){Content=newtest(){S=“test1”,I=1}});
l、 添加(newlistboxitem(){Content=newtest(){S=“test2”,I=2}});
l、 添加(newlistboxitem(){Content=newtest(){S=“test3”,I=3}});
l、 添加(newlistboxitem(){Content=newtest(){S=“test4”,I=4}});
foreach(l中的var项目)
{
列表框1.Items.Add(item);
}
}
}
公开课考试
{
公共字符串S{get;set;}
公共整数I{get;set;}
}
}

您正在将ListBoxItems添加到ListBox,而ListBoxItem没有名为“S”的属性,因此DisplayMemberPath无法工作

直接添加自定义类:

listBox.Items.Add(new Test { S = "Hello World" });

您通常不需要在WPF中直接使用ListBoxItems-只需将ListBox直接绑定到自定义集合,就会为您生成ListBoxItems。

您正在将ListBoxItems添加到ListBoxItems,而ListBoxItem没有名为“S”的属性,因此DisplayMemberPath将无法工作

直接添加自定义类:

listBox.Items.Add(new Test { S = "Hello World" });
通常,您不需要在WPF中直接使用ListBoxItems,只需将ListBox直接绑定到自定义集合,就会为您生成ListBoxItems