在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