2009-05-18 6 views

Antwort

0

Leider VB:

[Test] 
public void Exec_Testing() 
{ 
    ProductCollection products = 
     DB.Select().From("Products") 
      .Where("categoryID").IsEqualTo(5) 
      .And("productid").IsGreaterThan(50) 
      .ExecuteAsCollection<ProductCollection>(); 

    Assert.IsTrue(products.Count == 77); 

    ObservableCollection<Product> obsProducts = new ObservableCollection<Product>(products); 
} 
+0

Vielen Dank. Ich habe den DeveloperFusion.com Konverter verwendet, um mir zu geben: Dim obsProducts als neue ObservableCollection (Of Product) (Produkte) –

+0

Ja, das funktioniert, aber die Klassen erben nicht INotifyPropertyChanged, also ... Die wird binden, aber wird Änderungen der Eigenschaften nicht melden. –

+0

Wie löse ich das? (Entschuldigung, ich bin ein .NET-Neuling) –

0

Sie müssten manuell diese Klassen zu Ihrem DAL hinzufügen, aber es ist nicht allzu schwer. Fügen Sie an der Spitze jeder Datenzugriffsschichtklasse "Implementiert INotifyPropertyChanged" hinzu und fügen Sie dann in jeder Eigenschaft den Code in der "Menge" hinzu, wie Sie unten sehen.

Private _Book As String 
Public Property Book() As String 
    Get 
     Return _Book 
    End Get 
    Set(ByVal value As String) 
     If Not _Book = value Then 
      _Book = value 
      ' Raise the property changed event. 
      RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Book")) 
     End If 
    End Set 
End Property 

Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged