0
私のコピーコマンドにはほとんど問題がありません。私はCtrl + Cキーのショートカットを介してDataGridでそれを使用しています。c#データグリッドから複数の行をコマンドでコピーする方法
これは私の実際の行のコピー方法です。
private void CopyRow(object obj)
{
var item = obj as System.Windows.Controls.DataGrid;
var currentRow = item.SelectedIndex + 1;
var cells = item.SelectedCells;
if (_entityEnhancedNotifiedTruck != null)
{
Dictionary<ENotifiedTruckFlags, string> transf = new Dictionary<ENotifiedTruckFlags, string>();
string value = "";
foreach (var e in _entityEnhancedNotifiedTruck.EFlags)
{
switch (e)
{
case ENotifiedTruckFlags.CheckRecordHasBreak:
value = "Řidič má nařízenou přestávku";
break;
case ENotifiedTruckFlags.CheckWeighingOn:
value = "Řežim kontrolního vážení";
break;
case ENotifiedTruckFlags.NoTaraWeighted:
value = "Chybí tárové vážení";
break;
case ENotifiedTruckFlags.SPZProblem:
value = "Proveďte kontrolu SPZ";
break;
case ENotifiedTruckFlags.TimeProblem:
value = "Proveďte kontrolu ložné plochy";
break;
}
transf.Add(e, value);
}
var myStringBuilder = new StringBuilder();
foreach (KeyValuePair<ENotifiedTruckFlags, string> pair in transf)
{
myStringBuilder.AppendFormat("{0}", pair.Value);
myStringBuilder.Append("," + " ");
}
DateTime dt = _entityEnhancedNotifiedTruck.ECreationTime;
var Date = dt.ToShortDateString();
var Time = dt.ToLongTimeString();
DeliveriesGroup delGroup = _loadingSiteService.GetTruckLoadingDetail(_entityEnhancedNotifiedTruck.RecordID, computerName);
var clipboardText = currentRow + "\t" + Date + "\t" + Time + "\t" + _entityEnhancedNotifiedTruck.LicencePlate + "\t" + _entityEnhancedNotifiedTruck.LicencePlateTrailer + "\t" + _entityEnhancedNotifiedTruck.DriverName + "\t" + _entityEnhancedNotifiedTruck.LoadingSite + "\t" + _entityEnhancedNotifiedTruck.State + "\t" + _entityEnhancedNotifiedTruck.ProcessTypeName + "\t" + value;
Clipboard.SetText(clipboardText);
}
}
私の問題は、このメソッドは、DataGridから1行しかコピーできないということです。ユーザーが複数の行にマウスを伸ばしてCtrl + Cを押すと、すべてではありません。どのようにこれを解決するためのヒント?ありがとう! :)
、リストに私は新しいリストに(){currentRowの、などと他の文字列}を使うことができますか? –