【发布时间】:2012-03-10 18:10:39
【问题描述】:
我已经在另一个项目中使用了这些东西,但现在不行了。 我不知道为什么。
- 将 DataGrid ItemsSource 设置为
{Binding} - 创建新列表(属于我的班级)
- 创建公开列表
Dim MyList As New List(of myclass) - 创建实例时绑定
DataGrid.DataContext = MyList - 将 DataGrid 列定义设置为 myclass 属性上的某些项
我在名单上添加了我的第一堂课
MyList.Add(New myclass())
现在,这个项目是可见的。但是在创建实例和数据网格可见之后,行不会更新。
MyList.Add(New myclass()) 并且没有第二行可见。
只有在做的时候
MyDataGrid1.Items.Refresh
项目已正确更新。
但是据我了解, List(of ) 类已经包含了INotifyPropertyChanged 接口。
任何想法为什么会失败?
这里有一些额外的代码
<DataGrid.Columns>
<DataGridTextColumn Header="N°" Binding="{Binding Path=LineNumber, StringFormat='{}{0:000}'}" Width="SizeToCells" MinWidth="30" IsReadOnly="True" />
<DataGridTextColumn Header="HEX" Binding="{Binding HexText}" Width="SizeToHeader" MinWidth="80" IsReadOnly="True" FontWeight="Bold" />
<DataGridTextColumn Header="TextNormalized" Binding="{Binding Description}" Width="*" MinWidth="80" IsReadOnly="True" FontSize="12" />
</DataGrid.Columns>
</DataGrid>
一些代码隐藏:
Private ListData As New List(Of clsHexRowData)
实例:
Public Sub New()
' This call is required by the designer.
InitializeComponent()
Me.dgv.ItemsSource = Me.ListData
Me.ListData.Clear()
Dim item As New clsQueueItem
item.FromString("Hallo")
Me.AddItem(item)
End Sub
这是可见的,但是在初始化页面后添加新行时,项目不会更新,需要dgv.Items.Refresh,我不明白为什么。
【问题讨论】:
标签: .net wpf data-binding binding properties