2016-04-07 111 views

回答

-1

您可以使用以下代碼獲取。

public void DataGridCellValue(object param) 
    { 
     string clipboard = string.Empty; 
     if (param != null) 
     { 

      if (param is DataGridCell) 
      { 
       DataGridCell cell = (DataGridCell)param; 
       dynamic column = cell.Column as DataGridTextColumn; 

       if (cell.Column is DataGridTextColumn) 
        column = cell.Column as DataGridTextColumn; 

       if (cell.Content is TextBlock) 
       { 
        TextBlock tBlock = cell.Content as TextBlock; 
        clipboard = string.IsNullOrEmpty(tBlock.Text) ? string.Empty : tBlock.Text.Trim(); 
       } 
      } 
      else if (param.GetType().IsValueType) 
      { 
       clipboard = param.ToString(); 
      } 
     } 
    } 

    #endregion 
} 

public ICommand DataGridCellValue 
    { 
     get 
     { 
      return new DelegatingCommand((object param) => 
      { 
       new Action(() => 
       { 
        DataGridCopyToClipBoard(param); 
       }).Invoke(); 
      }); 
     } 
    } 

使用的綁定,這樣你的WPF XAML

"{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}" 

命令和CommandParameter的是

Command="{Binding DataGridCellValue}" 
CommandParameter="{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}" 
-1

如果你是新來WPF然後再通過下面這兩個環節開始並瞭解它如何在WPF中完成:

  1. Binding in WPF

  2. DataGrid Data Binaing

作爲一個簡短的,你真的從來沒有做 gridview1.Rows[0].Cells[0].value在WPF,而不是您可以將 網格綁定到數據源。然後嘗試從數據源收集 獲取值(如果你是不是想找UI特定內容,如:0行等的細胞0)。

+0

我想爲用戶一個空白Datagrid的輸入數據,然後將它保存在數據庫中。爲此,我將空Datatable綁定到Datagrid,併爲用戶輸入和1個按鈕添加文本框值。而爲了保存,我將datagrid的datacontext分配給了Datatable,並在Datatable本身做了進一步的工作,它將數據存儲到數據庫中。現在請告訴我..對WPF來說這是一個很好的做法?我懷疑它是。 –

+0

@AeshaPatel雖然你已經給出了這個描述,但我有很多問題,比如爲什麼用戶在文本框中輸入值,然後使用按鈕的事件來填充這些值。你不能只是用戶在網格中輸入文本本身。此外,您不需要將任何內容分配回數據表,只需將數據表綁定爲grid'e itemsource,並且網格中的任何新數據都將反映回您的數據表,WPF中不需要顯式代碼。如果你也給我一些代碼,我可以更好地告訴你。 –

相關問題