从TextBox向ListBox添加项目

时间:2013-03-04 12:39:45

标签: c# .net wpf

我有ListBox

<ListBox x:Name="PlaylistList" AlternationCount="2" SelectionChanged="DidChangeSelection">
        <ListBox.GroupStyle>
            <GroupStyle />
        </ListBox.GroupStyle>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

我想添加选项以向ListBox添加新项目。我希望在用户按下按钮时向TextBox添加ListBox,然后用户按回车键并将TextBox中的文字添加到ListBox }。

我尝试将文本框添加到列表框但我只能添加一种ListBox.ItemTemplate,我该如何处理?

3 个答案:

答案 0 :(得分:2)

已更新以在列表框中添加文本框:

要将新项目添加到ListBox,请在Button Click代码隐藏中执行:

TextBox TextBoxItem = new TextBox();
// set TextBoxItem properties here
PlaylistList.Items.Add(TextBoxItem);

答案 1 :(得分:0)

你的ListBox:

<ListBox
    Name="MyListBox"
    ItemsSource="{Binding Path=Reason}"
    DisplayMemberPath="Description"/>

为ListBox的项目创建一个ObversableCollection

public ObservableCollection<IdObject> items
{
    get { return (ObservableCollection<IdObject>)GetValue(ApplicationsProperty); }
    set { SetValue(ApplicationsProperty, value); }
}

items = new ObservableCollection<IdObject>();

在这种情况下,我的ID-Object具有以下属性:

private int _id = 0;
private string _description = "";

将集合绑定到ListBox:

MyListBox.ItemsSource = items;

然后创建一个带有Button的TextBox,以及一个用于按下按钮的事件,您可以在其中将文本添加到observable集合中:

items.Add(new IdObject(someId, TextBox.Text));

当更改ObservableCollection时,ListBox将更新

答案 2 :(得分:0)

单击按钮时编写此代码,以便将文本框文本添加到列表框中。

private void addEventButton_Click(object sender, EventArgs e)
    {


        // Adds events to listbox. 
       if (this.titleTextBox.Text != "")
        {
            listBox1.Items.Add(this.titleTextBox.Text); 
            listBox2.Items.Add(this.titleTextBox.Text);
            this.titleTextBox.Focus();
            this.titleTextBox.Clear();

         }
      }