两种方式绑定Datagrid

时间:2015-02-24 13:08:08

标签: wpf vb.net data-binding datagrid

我正在尝试将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,我愿意接受建议。

1 个答案:

答案 0 :(得分:0)

经过一番搜索后,找到了一个解决方案。 我做了什么,我补充道:

Me.MyDataGrid.Items.Refresh()

在我更改了List

中的值之后

感谢。