在WPF应用程序中动态创建按钮列表

时间:2014-12-18 21:26:16

标签: c# wpf list button wpf-controls

我即将开发我的第一个WPF。

我想获得一个按钮列表。按钮由WPF顶部的ONE" Add" - 按钮生成。

所以当我按下#34;添加"列表中出现了一个新按钮。

首先我如何创建列表?使用ListBox或StackPanel?我认为看起来StackPanel会很好但我不确定如何在那里添加按钮......

另一个问题:通常,当我生成一个对象(我来自Java)时,每个对象都会获得一个唯一的实例。但是我如何给每个按钮一个独特的名字?

我希望你能帮助我

2 个答案:

答案 0 :(得分:12)

停止。马上。

在您执行任何事情之前,请先学习基本的MVVM。 WPF WinForms(或其Java等价物)。在您知道何时应该这样做之前,您不应该以编程方式更改UI。

这些按钮应代表数据。那些数据应该在你的视图模型中。那么你会有ItemsControl这样的:

<ItemsControl ItemsSource="{Binding MyCollection}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button ... />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

现在,您可以根据绑定对象获取所需的所有唯一信息(无需唯一名称)。您甚至可以ItemsControl使用StackPanel作为底层面板(顺便提一下,默认情况下会这样做)。

答案 1 :(得分:1)

由于您需要动态行为并且这是您的第一个WPF应用程序,因此您应该在后面的代码上写这个。

只需为StackPanel命名(向其添加name属性),然后在按钮中处理click事件(只需双击WPF可视化编辑器中的按钮)。

在click事件的处理程序中,您可以执行以下操作:

this.MyStackPanel.Children.Add(new Button());

当然,要向该按钮添加行为,您可以将其分配给变量并添加适当的事件处理程序。