2012-04-02 11 views
0

Dies ist mein Code:Wpf Cross-Thread nicht Datagrid-Wert zeigt

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 }); 
    } 

Diese nicht funktioniert nicht, wenn ich Methode nenne AddToGrid von einem Thread. wenn ich Aber ohne Gewinde nenne

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

seine perfekt funktioniert. Wo mache ich falsch?

Dank

EDIT: Ich habe entdeckt, Werte werden dort zu speichern, aber irgendwie ist es nicht in das Netz zeigt.

Antwort

2

Das Raster wusste nicht, dass der Sammlung ein neues Objekt hinzugefügt wurde. Implementieren Sie entweder eine inotify-Sammlung, die geändert wurde, oder verwenden Sie eine beobachtbare Sammlung, um die Objekte zu speichern.

+0

Wow-Genie. Du hast meinen 2 Stunden Kumpel gerettet. Ich würde dir 100 Punkte geben, wenn ich die Macht hätte. Wirklich Lebensretter. Vielen Dank. – Barun

Verwandte Themen