我正在使用MVVM執行我的第一個應用程序。我在「視圖」中聲明瞭Datagrid。代碼XAML如下:如何使用MVVM從DataGrid傳遞有關所選項目的信息
<DataGridTemplateColumn Header="delete"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type> UserControl},Mode=FindAncestor}, Path=DataContext.ClickCommand}"> Content="X" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns>> </DataGrid>
在我的ViewModel類我可以通過代碼的一部分來運行,我想點擊按鈕後, 「刪除」 功能:
public ICommand ClickCommand => _clickCommand ?? (_clickCommand = new CommandHandler(Delete, _canExecute)); public void Delete() { // DataTable.Rows.RemoveAt(); }
我有問題,因爲我無法獲取selectet行的索引。 datagrid中的數據源是dataTable。
你有什麼想法如何做到這一點?
我試過用按鈕的命令傳遞參數的東西,但我cound't使它的工作。
它變得更有趣:你可以選擇第1行的同時單擊行2中的按鈕 - 所以你最好不要依賴選定行對每行存在一個按鈕。 – grek40