我们有 WPF 应用程序,我们想要如下功能。我想要一个表单,其中将包含用户名和每个用户前面的一个按钮。意思是如果数据库有 10 个用户,当窗口加载时它会带来这 10 个用户,并且在每个用户的前面会有一个显示按钮。
问问题
75 次
1 回答
1
您可以使用ListBox
并创建一个DataTemplate
包含您的Label
和Button
例子:
xml:
<Window x:Class="WpfApplication16.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication16"
Title="MainWindow" Height="350" Width="525" Name="UI">
<Window.Resources>
<!-- DataTemplate for User object -->
<DataTemplate DataType="{x:Type local:User}" >
<Border CornerRadius="3" BorderBrush="Black" BorderThickness="1" Margin="2" >
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding UserName}" Width="100"/>
<Button Content="Show User" Width="100" Margin="2"/>
</StackPanel>
</Border>
</DataTemplate>
</Window.Resources>
<Grid DataContext="{Binding ElementName=UI}">
<!-- The ListBox -->
<ListBox ItemsSource="{Binding Users}" />
</Grid>
</Window>
代码:
public partial class MainWindow : Window
{
private ObservableCollection<User> _users = new ObservableCollection<User>();
public MainWindow()
{
InitializeComponent();
// Load users
for (int i = 0; i < 10; i++)
{
Users.Add(new User { UserName = "User " + i });
}
}
public ObservableCollection<User> Users
{
get { return _users; }
set { _users = value; }
}
}
public class User
{
public string UserName { get; set; }
}
结果
于 2013-02-14T07:34:14.310 回答