![](/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.