我正在尝试将List
数据绑定到DataGrid
。
到目前为止它似乎只有一种方式 - 当我手动更改在显示的DataGrid
中输入的内容时,List
会更新,但反之亦然(DataGrid
不会当我在List
中更改某些内容时更改。
这是我的DataGrid
:
<DataGrid x:Name="MyDataGrid" AutoGenerateColumns="false" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn x:Name="ColName" Binding="{Binding Name}" Header="Name" />
<DataGridTextColumn x:Name="ColProperty" Binding="{Binding MyProperty}" Header="My Property" />
</DataGrid.Columns>
</DataGrid>
我按如下方式输入数据:
Public Class Res
Public Shared TableData As New List(Of DataItem)
End Class
Public Class DataItem
Public Property Name() As String
Public Property MyProperty() As String
End Class
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim entry As New DataItem
entry.Name = "Test Name"
entry.MyProperty = "Test Property"
Res.TableData.Add(entry)
Me.MyDataGrid.ItemsSource = Res.TableData
End Sub
但是,当我尝试更改数据时,通过执行以下操作:
Res.TableData.Item(0).Name = "Changed"
它不起作用,DataGrid
中显示的值不会改变。
这是为什么?如何更新我的DataGrid
?
如果有更好的方法将数据绑定到DataGrid
,我愿意接受建议。
答案 0 :(得分:0)
经过一番搜索后,找到了一个解决方案。 我做了什么,我补充道:
Me.MyDataGrid.Items.Refresh()
在我更改了List
。
感谢。