[英]Creating Listbox dynamically in Grid WPF
我一直在搜索许多博客以查找。 如何在网格单元格中动态创建列表框。 我想在该“网格”列中水平添加列表框项目。 例如,我想在该列中显示工作日,即我在XAML中具有执行此操作的代码。
<ListBox SelectionMode="Multiple" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Margin="0,0,10,0">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem> Mon </ListBoxItem>
<ListBoxItem> Tue </ListBoxItem>
<ListBoxItem> Wed </ListBoxItem>
<ListBoxItem> Thu </ListBoxItem>
<ListBoxItem> Fri </ListBoxItem>
</ListBox>
但我不知道如何在动态创建相同。 我为此有一个按钮,如果我单击该按钮,则应在列中创建带有项目的列表框。 再一次,如果单击按钮,它将在该网格的下一行中创建另一个列表框。
这是我的代码背后。
public int i=0;
private void Button_Click(object sender, RoutedEventArgs e)
{
RowDefinition row0 = new RowDefinition();
row0.Height = new GridLength(40);
grid1.RowDefinitions.Add(row0);
ColumnDefinition col0 = new ColumnDefinition();
col0.Width = new GridLength(150);
grid1.ColumnDefinitions.Add(col0);
Listbox lb=new Listbox();
?
?
Grid.SetRow(?, i);
Grid.SetColumn(?, 0);
i++;
}
var panelTemplate = new ItemsPanelTemplate();
var stackPanel = new FrameworkElementFactory(typeof(StackPanel));
stackPanel.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);
panelTemplate.VisualTree = stackPanel;
ListBox listBox = new ListBox();
listBox.ItemsPanel = panelTemplate;
listBox.Items.Add("Mon");
listBox.Items.Add("Tue");
listBox.Items.Add("Wed");
listBox.Items.Add("Thu");
listBox.Items.Add("Fri");
this.grid.Children.Add(listBox);
listBox.SetValue(Grid.RowProperty, 0);
listBox.SetValue(Grid.ColumnProperty, 0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.