Wpf Cross-Thread не показывает значение DataGrid - PullRequest
0 голосов
/ 02 апреля 2012

Это мой код:

    public void AddToGrid(string value)
    {
        MessageBox.Show(value);   //Message is showing with correct value
        dgrComponentList.Dispatcher.Invoke(new AddToGridDelegate(AddToGridSolid), System.Windows.Threading.DispatcherPriority.Normal, value);
    }
    private delegate void AddToGridDelegate(string value);
    private void AddToGridSolid(string value)
    {
        ((List<object>)this.dgrComponentList.ItemsSource).Add(new { ComponentName = value });
    }

Это не работает, когда я вызываю метод AddToGrid из потока. Но без нити, если я звоню

((List<object>)this.dgrComponentList.ItemsSource).Add(new { ComponentName = value });

работает отлично. Где я делаю не так?

Спасибо

РЕДАКТИРОВАТЬ: я только что обнаружил, значения хранятся там, но почему-то не отображается в сетке.

1 Ответ

2 голосов
/ 02 апреля 2012

Сетка не знала, что в коллекцию добавлен новый объект.Либо реализуйте измененную коллекцию inotify, либо используйте наблюдаемую коллекцию для хранения объектов.

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