簡體   English   中英

將自定義屬性綁定到Entity Framework

[英]Binding custom property with Entity Framework

我正在使用Entity框架構建一個C#應用程序。

我有一個從我的數據庫創建的實體,其中包含“價格”和“數量”字段。

使用部分類聲明我創建了一個自定義屬性“SubTotal”,如下所示:

partial class Detail {
  public decimal Subtotal {
    get
    {
      return Price * Quantity;
    }
  }  
}

問題是,我在我的應用程序中使用了很多DataBinding。

在某處,我使用IBindingList<Detail>作為ListView的ItemsSource

當我修改(使用代碼隱藏)列表中的一些元素,數量和價格時,列表視圖會正確更新。

但是,小計不會更新。

我認為這是因為某些東西是由實體框架自動完成的,以通知某些內容已被更改,但我不知道要添加到我的自定義屬性中,以便它的行為方式相同。

你能救我嗎?

對我有用的是調用OnPropertyChanged方法:

OnPropertyChanged("CustomPropertyName")

UI不知道Subtotal的值已更改。 實現System.ComponentModel.INotifyPropertyChanged ,然后引發PropertyChanged事件,讓UI知道當PriceQuantity發生變化時, Subtotal已更改。

例如:

partial class Detail : INotifyPropertyChanged {

   public decimal Subtotal 
   {
      get
      {
         return Price * Quantity;
      }
   }  

   public event PropertyChangedEventHandler PropertyChanged;

   private void NotifyPropertyChanged(String info)
   {
      if (PropertyChanged != null)
      {
          PropertyChanged(this, new PropertyChangedEventArgs(info));
      }
   }
}

然后,當更改PriceQuantity時,您將調用NotifyPropertyChanged("Subtotal") ,並且UI應該適當地更新顯示的Subtotal值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM