Eine erste chance Ausnahme des Typs " System.InvalidOperationException' ist in PresentationFramework.dll

Alle,

Ich bin mit der Datenbank Erste Entity Framework v4.4. In der DB (und Daten-Modell) ist in Tabelle1, die eine 1:N Beziehung zur Tabelle 2.

Ich bin das binden eines DataGrid in WPF auf Table1.Local.Ersten().Tabelle2 (der Einfachheit halber wird angenommen, dass es eine Entität in "Tabelle1".Lokale, um mit zu beginnen).

ViewModel:

Public SomeEntityDBContextWithTable1AndTable2 Container { get; set; }
Public ICollection Table2ToDisplay { get { return Container.Table1.Local.First().Table2; } } //Note: :Many navigation properties return ICollection<T>, but the object type is of ObservableCollection<T>.

In XAML, ich habe Folgendes

<GroupBox Header=Table2 DataContext="{Binding Path=Table2ToDisplay, UpdateSourceTrigger=PropertyChanged}">
    <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" CanUserAddRows="True">
        <DataGrid.Columns>
            <!--A bunch of columns-->
        </DataGrid.Columns>
    </DataGrid>
</GroupBox>

Wenn Sie in einer NewItemPlaceHolder, die passiert zu sein eine text-box, ich bekomme das System.InvalidOperationException-Auftritt in PresentationFramework.dll. Diese führen nicht mehr zum Absturz der Anwendung ist, aber ich sehe es in der Ausgabe. Meine Vermutung ist, dass Personen Hinzugefügt werden, die auf einem anderen thread, und damit CollectionChanged-Ereignis wird ausgelöst, in einem anderen thread, und dadurch wird die InvalidOperationException. Jedoch, da der code erfolgen hauptsächlich über XML -, ich kann nicht scheinen, um einen Weg zu finden, um diese zu bewältigen Ausnahme (oder ist es schon behandelt, es ist nur so, dass es gemeldet wird Ausgegeben). Gibt es einen sicheren Weg, um CanUserAddRows="True" mit EntityFramework wo ":Viele" navigation properties sind vom Typ ObservableCollection?

Sollte ich darauf hinweisen, dass ich habe auch versucht, packe meine Table2ToDisplay-Eigenschaft innerhalb einer CollectionViewSource, aber ich sehe immer noch die InvalidOperationException in der Ausgabe.

Vielen Dank im Voraus.

InformationsquelleAutor William | 2013-03-14

Schreibe einen Kommentar