Dan*_*sen 0 c# wpf listbox multiline
我在WPF上遇到了一些麻烦,因为它是我第一次使用它.
我试图创建一个ListBox,它为每个项目保存两行.我怎样才能实现这一目标?
我尝试过以下方法:
<ListBox>
<Label name="first">First Line</label>
<Label name="second">Second Line</label>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
即使这没有给出任何错误,我也不认为这是正确的方法.
你们能协助吗?
您可以通过修改ListBox ItemTemplate,同时绑定到要显示的数据集合来实现此目的.
XAML:
<ListBox Name="MyListBox" ItemsSource="{Binding ListBoxData}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Text1}" MinWidth="200"/>
<TextBlock Text="{Binding Text2}" MinWidth="200"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
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; }
}
}
Run Code Online (Sandbox Code Playgroud)
就WPF而言,您通常希望直接将绑定而不是硬编码项目用于xaml.上面的示例显示了通过代码隐藏进行数据绑定,但理想情况下,您可能希望创建一个ViewModel并绑定到它.一旦你熟悉w/WPF,我建议你查找MVVM.
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |