Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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为每个项目创建两行列表框_C#_Wpf_Listbox_Multiline - Fatal编程技术网

C#-使用WPF为每个项目创建两行列表框

C#-使用WPF为每个项目创建两行列表框,c#,wpf,listbox,multiline,C#,Wpf,Listbox,Multiline,我在使用WPF时遇到了一些麻烦,因为这是我第一次使用它 我正在尝试创建一个列表框,其中每个项目包含两行。我怎样才能做到这一点 我尝试了以下方法: <ListBox> <Label name="first">First Line</label> <Label name="second">Second Line</label> </ListBox> 一线 第二线 即使这没有给出任何错误,我也不认为这是正确的

我在使用WPF时遇到了一些麻烦,因为这是我第一次使用它

我正在尝试创建一个列表框,其中每个项目包含两行。我怎样才能做到这一点

我尝试了以下方法:

<ListBox>
    <Label name="first">First Line</label>
    <Label name="second">Second Line</label>
</ListBox>

一线
第二线
即使这没有给出任何错误,我也不认为这是正确的方法


你们能帮忙吗?

你们可以像这样在列表框中创建项目

<ListBox>
     <ListBoxItem Name="Item1">Item</ListBoxItem>
     <ListBoxItem Name="Item2">Item2</ListBoxItem>
</ListBox>

项目
项目2
或者,如果您希望动态分配它们,您可以在代码中这样设置值

Listbox1.ItemsSource = <some collection>;
Listbox1.DisplayMemberPath = "<Collection item you want displayed>";
Listbox1.ItemsSource=;
Listbox1.DisplayMemberPath=“”;
对于MVVM模式,也可以采用这种方式

<ListBox ItemsSource="{Binding Path=<Your Property>}" DisplayMemeberPath="{Binding Path =Display Value Property}" />

您可以像这样在列表框中创建项目

<ListBox>
     <ListBoxItem Name="Item1">Item</ListBoxItem>
     <ListBoxItem Name="Item2">Item2</ListBoxItem>
</ListBox>

项目
项目2
或者,如果您希望动态分配它们,您可以在代码中这样设置值

Listbox1.ItemsSource = <some collection>;
Listbox1.DisplayMemberPath = "<Collection item you want displayed>";
Listbox1.ItemsSource=;
Listbox1.DisplayMemberPath=“”;
对于MVVM模式,也可以采用这种方式

<ListBox ItemsSource="{Binding Path=<Your Property>}" DisplayMemeberPath="{Binding Path =Display Value Property}" />

您可以通过修改
列表框
项目模板
,同时绑定到要显示的数据集合来实现这一点

Xaml:


Xaml.cs:

namespace WpfApplication1
{
    public partial class MainWindow 
    {
        public List<MyRow> ListBoxData { get; set; } 
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
            ListBoxData = new List<MyRow>
            {
                new MyRow{Text1 = "Row 1 - Data 1", Text2 = "Row 1 - Data 2"},
                new MyRow{Text1 = "Row 2 - Data 1", Text2 = "Row 2 - Data 2"},
                new MyRow{Text1 = "Row 3 - Data 1", Text2 = "Row 3 - Data 2"}
            };
        }
    }       

    public class MyRow
    {
        public string Text1 { get; set; }
        public string Text2 { get; set; }
    }
}
命名空间WpfApplication1
{
公共部分类主窗口
{
公共列表ListBoxData{get;set;}
公共主窗口()
{
初始化组件();
this.DataContext=this;
ListBoxData=新列表
{
新MyRow{Text1=“Row 1-Data 1”,Text2=“Row 1-Data 2”},
新MyRow{Text1=“Row 2-Data 1”,Text2=“Row 2-Data 2”},
新MyRow{Text1=“第3行-数据1”,Text2=“第3行-数据2”}
};
}
}       
公共类MyRow
{
公共字符串Text1{get;set;}
公共字符串Text2{get;set;}
}
}

就WPF而言,您通常希望使用绑定,而不是直接将项目硬编码到xaml中。上面的示例显示了通过代码隐藏进行的数据绑定,但理想情况下,您希望创建一个ViewModel并绑定到该模型。我建议您在更加熟悉w/WPF后,可以查找MVVM。

您可以通过修改
列表框来实现这一点,同时绑定到要显示的数据集合

Xaml:


Xaml.cs:

namespace WpfApplication1
{
    public partial class MainWindow 
    {
        public List<MyRow> ListBoxData { get; set; } 
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
            ListBoxData = new List<MyRow>
            {
                new MyRow{Text1 = "Row 1 - Data 1", Text2 = "Row 1 - Data 2"},
                new MyRow{Text1 = "Row 2 - Data 1", Text2 = "Row 2 - Data 2"},
                new MyRow{Text1 = "Row 3 - Data 1", Text2 = "Row 3 - Data 2"}
            };
        }
    }       

    public class MyRow
    {
        public string Text1 { get; set; }
        public string Text2 { get; set; }
    }
}
命名空间WpfApplication1
{
公共部分类主窗口
{
公共列表ListBoxData{get;set;}
公共主窗口()
{
初始化组件();
this.DataContext=this;
ListBoxData=新列表
{
新MyRow{Text1=“Row 1-Data 1”,Text2=“Row 1-Data 2”},
新MyRow{Text1=“Row 2-Data 1”,Text2=“Row 2-Data 2”},
新MyRow{Text1=“第3行-数据1”,Text2=“第3行-数据2”}
};
}
}       
公共类MyRow
{
公共字符串Text1{get;set;}
公共字符串Text2{get;set;}
}
}

就WPF而言,您通常希望使用绑定,而不是直接将项目硬编码到xaml中。上面的示例显示了通过代码隐藏进行的数据绑定,但理想情况下,您希望创建一个ViewModel并绑定到该模型。我建议您在更熟悉w/WPF后查找MVVM。

我认为您需要添加ListBoxItem而不是标签。我认为您需要添加ListBoxItem而不是标签。这正是我想要的。。谢谢你!这正是我想要的。。谢谢你!