0
我試圖將List
數據綁定到DataGrid
。Bining Datagrid both ways
到目前爲止,似乎工作只有一個辦法 - 當我手動更改顯示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
,我很樂意提供建議。
您是否嘗試過使用'{Binding Name,Mode = TwoWay}',並且您是否實現了['INotifyPropertyChanged'接口](https://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged (v = vs.110).aspx)在你的數據類? – Sheridan 2015-02-24 13:23:23
我試過'{綁定名稱,模式= TwoWay}',並沒有改變任何東西。不知道你的意思後者。你能否提供一些例子? – 2015-02-24 13:27:18
你如何試試我爲你提供的鏈接? – Sheridan 2015-02-24 13:29:15