如何动态添加按钮到StackPanel

时间:2011-09-21 11:54:55

标签: silverlight

我有一些动态添加按钮到StackPanel的代码。 我想做这个动作是使用绑定到包含字符串列表的某个对象。 需要添加到StackPanel的按钮的编号类似于列表中的字符串编号==>每个按钮内容需要在列表中作为字符串。

我怎样才能使用绑定? 如何在列表中的字符串和stackpanel中的对象之间建立连接?

我将DataContext定义为列表 - 但我不知道如何使堆栈面板中的每个项目与列表中的字符串一起使用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您使用ItemsControl(默认使用Stackpanel来放置其项目)

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

真正的诀窍就是在点击按钮时会发生一些有用的事情。最基本的方法是在代码隐藏中使用Button_Click事件。

修改:“如何将方向更改为水平”

 <ItemsControl ItemsSource="{Binding ListOfStringsProperty}">
     <ItemsControl.ItemsPanel>
          <ItemsPanelTemplate>
               <StackPanel Orientation="Horizontal" />
          </ItemsPanelTemplate>
     </ItemsControl.ItemsPanel>
     <ItemsControl.ItemTemplate>
          <DataTemplate>
               <Button Content="{Binding}" />
          </DataTemplate>
     </ItemsControl>
 </ItemsControl>