2014-09-16 4 views
1

Datagrid의 열을 double 배열로 복사하는 코드를 찾고 있습니다.DataGrid의 열을 배열에 복사하는 방법 C# WPF

Period Acc 
    0.1  3 
    1  4 
    2  7 
    5.5  10.5 

예를 들어, 열 Perioed에 대한 이중 배열을 갖고 싶습니다. Datagrid 이름은 dg입니다. 나는 존재하는 Q을 찾아 내려고 노력했지만, "행"을 포함하는 윈도우 폼이나 datagridview에 관한 것이었다. 행 속성이 DataGrid 클래스에 있지만 datagridview에 없다는 것을 알았습니다. 아무도 그것을하는 방법을 알고 있습니까? 아마도

var colVals = List<double>(); 
foreach(var row in Datagrid.Rows) 
{ 
    colVals.Add(Convert.ToDouble(row.Cells[0])); 
} 

: 덕분에,

답변

2

@Daloupe가 정확합니다. DataGrid를 어떻게 채우고 있습니까? DataGrid에서 직접 데이터를 관리하는 것보다 데이터 소스로 작업하는 것이 훨씬 쉽습니다. 예를 들어 데이터에 두 개의 이중 값 (Period 및 Acc)이있는 Data라는 클래스 개체 목록에서 데이터를 채우는 경우 소스 목록의 확장 메서드를 사용하여 기간 값을 추출 할 수 있습니다.

// You have a list of Data elements List<Data> gridData that is the data 
// source of your DataGrid 
double[] periods = gridData.Select(x => x.Period).ToArray(); 
+0

때때로 DataGrid 창에서 숫자를 편집해야합니다. 그런 다음 편집 된 숫자를 배열에 전달하려고합니다. 감사, – user3170073

+0

DataGrid의 데이터 소스와 별개의 배열에 값을 전달하고 현재 컬렉션과 동기화 된 상태로 유지하려는 경우 [DataGrid.CellEditEnding] (http : // msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.celleditending%28v=vs.110%29.aspx) 이벤트를 사용하여 변경된 경우 새 기간 값을 기반으로 배열을 업데이트합니다. –

+0

그 부분을 알지 못했습니다. 감사!!! – user3170073

1

장황한 방법은 될 것이라고 할까?

편집 : 아하, Datagridview 대신 Datagrid를 사용하고 있습니다. 음, 데이터 소스에 의존하고 있습니까?

+0

예, 데이터 테이블의 데이터가 첫 번째 장소에서 DataGrid로 전달됩니다. 내가 DataGrid에서 복사하려는 이유는 DataGrid에서 일부 숫자를 편집 한 다음 분석을 위해 배열로 전달해야하기 때문입니다. – user3170073

+1

DataGrid가 데이터 소스에 바인딩 된 경우 그리드의 모든 변경 내용이 소스를 변경하고 그 반대의 경우도 마찬가지입니다. 소스에서 또는 그리드에서 데이터를 가져올 지 여부는 동일한 데이터입니다. – Daloupe

+0

맞습니까? 나는 그 부분을 몰랐다. 감사! – user3170073

관련 문제