根据用户数量在窗口加载事件上加载按钮

时间:2013-02-14 07:11:30

标签: wpf wpf-controls wpfdatagrid wpftoolkit

enter image description here我们有WPF应用程序,我们想要下面的功能。 我想要一个表单,其中包含用户名&每个用户面前的一个按钮。 意味着如果数据库有10个用户,它将在窗口加载时带来这10个用户,&在每个用户面前会有显示按钮。

1 个答案:

答案 0 :(得分:1)

您可以使用ListBox并创建包含DataTemplateLabel

Button

示例:

的Xaml:

<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; }
}

结果

enter image description here