【问题标题】:creating a list of textboxes in C#在 C# 中创建文本框列表
【发布时间】:2021-12-30 12:19:41
【问题描述】:

我刚开始学习 C# 和 Selenium,我有一个正在开发的项目,在这个项目中我需要能够创建一个功能按钮,以便当用户单击它时会出现一个文本框,用户可以在其中放置“文本”或“数字”,他们可以删除并像列表一样添加它们。我在 C# 方面没有足够的经验和知识,所以我无法更好地解释它,但这是一个了解构建它的好方法,就像一个购物应用程序,比如当有人去买杂货时,他们会放置他们可能需要购买的所有东西进入“文本框列表”。我尝试了以下方法,但我认为这不是方法,或者我只是没有正确执行。`

private void plusbutton_Click(object sender, RoutedEventArgs e)
        {
            List<string> myOS = new List<string>();

        myOS.Add("windows1");
        myOS.Add("linux");
        myOS.Add("peter");
        myOS.Add("sasuke");
        foreach (string res in myOS)
            string textbox = textbox1.Text;` 

已编辑;所以正在努力创建一个按钮,每次我点击它都会创建一个文本框,想象它像一个+ 标志,每次点击它都会出现一个文本框,我可以在其中输入buy eggs,如果我需要购买更多东西我只需单击+ 以创建一个新的textbox 并从每个文本框的内容发送到带有硒的网页(发送密钥)。希望这能帮助更多!

【问题讨论】:

  • 这听起来像X-Y problem。与其寻求解决问题的帮助,不如编辑您的问题并询问实际问题。你想做什么?
  • 如果这样更好,请告诉我。
  • Selenium 最适合 Browser Automation,您似乎在寻找 App Development???
  • 是的,我需要将它们组合起来,这样当我点击添加文本框时,里面的任何内容都会发送到网页
  • 您可能应该在此处删除“Selenium”标签,因为代码都是 C#/.NET 接口的东西。您需要的是动态视图。因此,构建一个视图项数组(在本例中是一个文本框……以及与之相关的任何内容、标签等……)然后构建一个刷新函数,用视图项数组更新 UI。 (您也可以将视图数组与数据数组绑定...)单击添加时,您将新的视图项(输入框、标签、索引等)添加到视图数组。然后调用根据数组更新 UI 的刷新函数。

标签: c# selenium


【解决方案1】:

如果我对您的理解正确,您希望拥有一个包含TextboxesListbox 作为待办事项列表。尽管我认为这不是最好的方法,但您可以创建一个包含TextboxListBox.ItemTemplate,然后将任何ObservableCollection 用作Listbox.ItemsSource。这样,每当您向ObserableCollection 添加新项目时,都会创建一个新的Listbox.Item(您必须在单击按钮时执行此操作)像这样:

XAML:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="4*"/>
    </Grid.RowDefinitions>
    <Button Click="AddToListBoxClick" Grid.Row="0" Content="add Item" Width="200" Height="50"/>
    <ListBox Name="MyListbox" Grid.Row="1">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <TextBox Width="300" Height="30"/>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

C#:

// using System.Collections.ObjectModel;
public MainWindow()
    {
        InitializeComponent();
        MyListbox.ItemsSource = indexes;
    }

    ObservableCollection<int> indexes = new ObservableCollection<int>();
    
    void AddToListBoxClick(object sender, RoutedEventArgs e)
    {
        indexes.Add(indexes.Count);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多