这是我的数据网格
<DataGrid Name="dgItems" AutoGenerateColumns="False" CanUserAddRows="True" ItemsSource="{Binding BillItems}" >
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Label Content="{DynamicResource itemcodehdr}"></Label>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=ItemCode, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Label Content="{DynamicResource itemnamehdr}"></Label>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=ItemName, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<EventSetter Event="PreviewKeyDown" Handler="dgItems_PreviewKeyDown"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>
Private _billItems As ObservableCollection(Of StockAccountPE)
Public Property BillItems() As ObservableCollection(Of StockAccountPE)
Get
Return _billItems
End Get
Set(ByVal value As ObservableCollection(Of StockAccountPE))
_billItems = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("BillItems"))
End Set
End Property
首次加载窗口时,我的收藏是空的。 在我完成下面的操作之后,我在网格中找到了一行
_billItems = New ObservableCollection(Of StockAccountPE)
_billItems.Add(New StockAccountPE)
_billItems.RemoveAt(0)
BillItems = _billItems
在网格中输入一些值后,该集合仍为空。基本上,数据网格中的新行未添加到集合中。这是我的第一个问题。
第二个问题是如何在将项添加到集合时引发PropertyChanged事件。现在,当为集合分配一些值时,它会被引发,而不是在它被修改时。