У меня уже был этот материал, работающий в другом проекте, но теперь это не так.Я понятия не имею, почему.
- Установить DataGrid ItemsSource равным
{Binding}
- Создать новый список (из myclass)
- Создать публичный список
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
, чего я не понимаю, почему.