-1

在此处输入图像描述我们有 WPF 应用程序,我们想要如下功能。我想要一个表单,其中将包含用户名和每个用户前面的一个按钮。意思是如果数据库有 10 个用户,当窗口加载时它会带来这 10 个用户,并且在每个用户的前面会有一个显示按钮。

4

1 回答 1

1

您可以使用ListBox并创建一个DataTemplate包含您的LabelButton

例子:

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 回答