2015-09-04 133 views
0

給定綁定到CollectionViewSource的數據網格,其源是ObservableCollection,當第一次顯示時,OC被實例化爲顯示沒有任何內容的單行。WPF如何在datagrid中獲取當前編輯的內容?

<DataGridTextColumn x:Name="observationNameColumn" Width="auto" Header="Observation Name" Binding="{Binding ObservationName}"/> 

我想在任何給定的字段中輸入文本來啓動基於用戶輸入的EF後端查詢。爲此,我在相同的數據網格中添加了一個像這樣的按鈕。帶點擊處理程序的簡單按鈕...

<DataGridTemplateColumn> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <Button x:Name="XBTNSearch" Click="XBTNSearch_Click" Padding="5,0,5,0">Enter Search Criteria and Search</Button> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

當用編輯的值單擊行時,這是所用代碼的類型。

private void XBTNSearch_Click(object sender, RoutedEventArgs e) 
    { 
     var context = ((Button)sender).DataContext; 
     Debugger.Break(); 
     FindStuff(); 
    } 

當破發點被擊中是顯示雖然我沒有輸入一些東西到田間的一個觀察集合的一個空模型類型甚至......我想這個值,所以我可以使用EF爲「FindStuff」

如何根據Button的datacontext獲取行單元格中的值應該是我編輯文本的那一行?

回答

0

解決這個問題是這樣的按鈕的Click事件Hanlder作爲第一個語句...

XDG.CommitEdit(); 

哪裏XDG是XAML中數據網格....