![](/img/trans.png)
[英]In WPF is it possible to force an update to a datagrid on keyup event?
[英]WPF event for DataGrid update
我有一个带有dataGrid的视图:
<DataGrid x:Name="DARViewer"
AutoGenerateColumns="True"
ItemsSource="{Binding DataSourceTable,
NotifyOnSourceUpdated=True,
UpdateSourceTrigger=Default}" />
我也有10个按钮,每次单击一个按钮,我都会调用一个命令来更新DataSourceTable(这是ViewModel中的datatable属性)。
代码工作正常,每次我单击按钮时,datagrid都有相应的数据。
我的问题是,每次更改DataSourceTable时都找不到引发的datagrid事件。
PS。 我想DARViewer.DataContextChanged(有意义)和DARViewer.SourceUpdated,但他们没有工作
通过按钮执行的命令是:
Private Sub LoadReportExecute(sender)
Id = sender.DataContext.Id
ChangeDataSourceTable()
End Sub
Public Sub ChangeDataSourceTable()
DataSourceTable = Nothing
DataSourceTable = ExecuteCommand(DataSource) 'that just returns a datatable
End Sub
Private mdtDataSourceTable As DataTable
Public Property DataSourceTable() As DataTable
Get
Return mdtDataSourceTable
End Get
Set(ByVal value As DataTable)
mdtDataSourceTable = value
RaisePropertyChanged("DataSourceTable")
End Set
End Property
在Marcus提供的解决方案之后,我将为VB.NET发布相同的解决方案和代码,以防万一有人需要它。
Private Sub ReportView_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim gridItemsSourceDescriptor As DependencyPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(DataGrid.ItemsSourceProperty, GetType(DataGrid))
gridItemsSourceDescriptor.AddValueChanged(Me.DARViewer, _
New EventHandler(AddressOf OnDataGridItemsSourceChanged))
End Sub
Private Sub OnDataGridItemsSourceChanged(sender As Object, e As EventArgs)
'Code here
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.