在WPF窗口上,我有一個簡單的十進制值列表框,它有一個綁定到它的一個ObservableCollection的Amounts,一個綁定到Total屬性的標籤,顯示ListBox下面的值的總和,以及一個TextBox出現在綁定到selectedItem.Amount屬性的ListBox的右側。WPF與ObservableCollection的數據綁定
當我點擊列表框中的一個項目時,我希望能夠編輯被填充的文本框中的selectedItem的值,關閉文本框,並讓listBoxItem更新其值,並且我希望總和得到更新在標籤中也是如此。
我知道如何元素與元素綁定工作(即列表框到文本框) 什麼我有麻煩搞清楚是元素與對象綁定(即ListBox中/的ObservableCollection的總資產)
謝謝非常!
這裏有兩個簡單的類我到目前爲止有:
Public Class TransactionModel
Implements INotifyPropertyChanged
'Public Property Amount As Decimal
Private _amount As Decimal
Public Property Amount As Decimal
Get
Return _amount
End Get
Set(ByVal value As Decimal)
_amount = value
OnPropertyChanged(New PropertyChangedEventArgs("Amount"))
End Set
End Property
Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Public Sub OnPropertyChanged(ByVal e As PropertyChangedEventArgs)
If Not e Is Nothing Then
RaiseEvent PropertyChanged(Me, e)
End If
End Sub
末級
公共類視圖模型 實現INotifyPropertyChanged
Private oc As ObservableCollection(Of TransactionModel)
Sub New()
oc = New ObservableCollection(Of TransactionModel)
oc.Add(New TransactionModel With {.Amount = 10.0})
oc.Add(New TransactionModel With {.Amount = 20.0})
oc.Add(New TransactionModel With {.Amount = 30.0})
oc.Add(New TransactionModel With {.Amount = 40.0})
End Sub
Public Function GetAmounts() As ObservableCollection(Of TransactionModel)
Return oc
End Function
Private _total As Decimal = 0.0
Public Property Total As Decimal
Get
For Each o In oc
_total += o.Amount
Next
Return _total
End Get
Set(ByVal value As Decimal)
_total = value
OnPropertyChanged(New PropertyChangedEventArgs("Total"))
End Set
End Property
Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Public Sub OnPropertyChanged(ByVal e As PropertyChangedEventArgs)
If Not e Is Nothing Then
RaiseEvent PropertyChanged(Me, e)
End If
End Sub
末級
的listboxitems是十進制值,我希望標籤是列表框中值的總和。 – 2011-01-26 23:37:19