Listbox очищает все элементы во время изменения источника данных - PullRequest
1 голос
/ 08 июля 2010

Когда я изменяю источник данных моего списка, все элементы очищаются, при загрузке новых данных в этот список он остается чистым.У меня есть еще один ListBox, новый для этого с тем же кодом обновления, но он прекрасно обновляется.

    private void RefreshContacts()
    {
        this.ListContacts.DataSource = null; 
        this.ListContacts.DataSource = this.contacts;
        this.BoxCountContacts.Text = this.ListContacts.Items.Count.ToString();
    }

У кого-нибудь есть идеи, как убрать и очистить список?Вот полные коды обновления двух списков

    private Contact[] contacts, feed; private Boolean isFeed;

    internal ArcFeed()
    { 
        this.InitializeComponent();
        this.contacts = this.feed = new Contact[0]; 
    }
    private void RefreshForm(Boolean isFeed)
    { 
        if (isFeed)
        { 
            this.RefreshFeed();
        } 
        else 
        { 
            this.RefreshContacts();
        } 
    }
    private void RefreshContacts()
    {
        this.ListContacts.DataSource = null;         
        this.ListContacts.DataSource = this.contacts;
        this.BoxCountContacts.Text = this.ListContacts.Items.Count.ToString();
    }
    private void RefreshFeed()
    {
        this.ListFeed.DataSource = null; 
        this.ListFeed.DataSource = this.feed;
        this.BoxCountFeed.Text = this.ListFeed.Items.Count.ToString();
    }
    private void OpenFile()
    {
        if (this.isFeed)
        { 
            this.BoxFileFeed.Text = this.DialogOpen.FileName;
            this.feed = ArcBuzz.Load(this.DialogOpen.FileName);
        }
        else
        {
            this.BoxFileContacts.Text = this.DialogOpen.FileName;
            this.contacts = ArcBuzz.Load(this.DialogOpen.FileName); 
        }
        this.RefreshForm(this.isFeed);
    }

Весь код отлажен и корректно следует своему курсу, я не вижу ошибок, правильный источник данных списка установлен и изменен.

1 Ответ

0 голосов
/ 08 июля 2010

Просто чтобы убедиться, что вы проверили наличие предметов в коллекции contacts?

Кроме того, если у вас есть два списка, дважды проверьте, что вы используете правильный список в каждом из разделов кода обновления.

Звучит глупо, но такие глупые ошибки, как эта, часто упускаются из виду. С привязкой данных это обычно что-то маленькое, как это, останавливая его работу.

...