2009-07-21 4 views
0

Wenn ich ein von SubSonic 3 erzeugtes IQueryable-Ergebnis an die ItemsSource einer WPF-ComboBox oder eines DataGrids anbinde, kann ich das ausgewählte Element nicht ändern die ComboBox oder das DataGrid mehr als einmal. Ich benutze SubSonic 3.0.0.3 und ActiveRecord.SubSonic 3 und WPF ItemsSource (ComboBox, DataGrid) - ausgewähltes Objekt wird nicht mehr als einmal aktualisiert

Hier ist ein Beispiel:

In meinem Code:

var foo = FooDB.Customer.All(); 
FooComboBox.ItemsSource = foo; 

In meiner XAML:

<ComboBox DisplayMemberPath="CustomerName" Name="FooComboBox" /> 

Schritte zum Reproduzieren:

  1. Run-Anwendung. Beachten Sie, dass in meiner ComboBox (zu Beginn) keine Elemente ausgewählt sind.
  2. Klicken Sie auf die ComboBox. Das Dropdownfeld wird mit mehreren Kundennamen angezeigt.
  3. Wählen Sie den Kundennamen X im Dropdown-Menü aus. Das Dropdown wird ausgeblendet und X ist jetzt ausgewählt.
  4. Klicken Sie erneut auf die ComboBox. Das Dropdown wird angezeigt.
  5. Wählen Sie den Kundennamen Y in der Dropdown-Liste aus. Das Dropdown wird ausgeblendet, aber X ist immer noch ausgewählt.

Vielen Dank im Voraus.

+0

Ein wenig mehr Info: Ich schrieb eine einfache Klasse, um die von SubSonic erzeugte Customer-Klasse zu umbrechen (sie enthält eine Eigenschaft, die eine Customer-Instanz erhält/setzt), legte sie in eine Collection und ordnete die Collection der ItemsSource zu der ComboBox. Mit diesem Hack funktioniert die ComboBox wie erwartet. Aber warum? Sind die Eigenschaften/Methoden der Customer-Klasse Probleme mit der ItemsSource? (ist das möglich?) – sparks

Antwort

0

Das Wrapping der von SubSonic generierten Klasse mit Ihrer eigenen Klasse (die eine Eigenschaft enthält, die die generierte Klasseninstanz erhält/setzt) ​​und diese in einer Sammlung verwendet, funktioniert.

Verwandte Themen