簡體   English   中英

在Grid WPF中動態創建列表框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM