WPF Listbox - проблема с привязкой данных - PullRequest
1 голос
/ 13 сентября 2010

У меня есть эта проблема, когда я запускаю приложение, я вижу список с пунктами "красный", "синий", "желтый". Но когда я набираю «черный» в textBox1 и нажимаю Button1, элемент не добавляется. Есть идеи почему?

 public partial class Window1 : Window
{
    private static ArrayList myItems = new ArrayList();
    public Window1()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        listBox1.ItemsSource = myItems;
        myItems.Add("red");
        myItems.Add("blue");
        myItems.Add("yellow");   
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        myItems.Add(textBox1.Text);
    }
}

Ответы [ 2 ]

3 голосов
/ 13 сентября 2010

Вы должны заменить ArrayList на ObservableCollection , который будет связываться с ListBox, когда его содержимое изменяется.

0 голосов
/ 13 сентября 2010

Это связано с тем, что представление (в данном случае список) не информируется об изменении.

Вы должны либо реализовать INotifyProperyChanged, либо просто сбросить itemsSource:

private void button1_Click(object sender, RoutedEventArgs e)
{
    myItems.Add(textBox1.Text);
    // refresh:
    listBox1.ItemsSource = myItems;
}

(Хотя лучше использовать OnPropertyChanged, наверняка лучше.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...