안녕하세요…
제목 그대로 datagridview 바인딩 중 일 때 row 에 특정 Column 값을 가져오고 싶은데…
바인딩 중에 발생하는 이벤트가 어떤 건지 좀 알려주세요.
RowsAdded, CellValueNeeded 두개의 이벤트를 사용해 봤는데…
제가 잘 못하는 건지 안되더군요…
안녕하세요…
제목 그대로 datagridview 바인딩 중 일 때 row 에 특정 Column 값을 가져오고 싶은데…
바인딩 중에 발생하는 이벤트가 어떤 건지 좀 알려주세요.
RowsAdded, CellValueNeeded 두개의 이벤트를 사용해 봤는데…
제가 잘 못하는 건지 안되더군요…
답변 감사합니다.
저의 질문이 명확하질 않았네요…죄송합니다.
제가 원하는 건 바인딩이 되는 중에
현재 바인딩 되는 Row 에 첫번째 Column 의 값을 가지고 오고 싶습니다.
감사합니다.
선택한 row의 Column 값을 가져오시는 거면 SelectionChanged를 사용해서 파라미터를 살펴보는게 좋을 것 같습니다.
이벤트 함수에 브레이크포인트를 걸고 EventArgs로 들어오는 값을 한번 확인해보세요.
답변 감사합니다.
선택한 행은 아니구요…
현재 바인딩 되는 행에서 첫번째 열의 값을 가져오고 싶습니다.
감사합니다.
저도 이거일꺼라 생각했습니다 근데 아니였네요 ㅠㅠ
위 두분 답변 감사합니다…
결국 이벤트는 찾지 못하고…
grid 에 데이타를 직접 바인딩 해서 넣지 않고.
데이타를 loop 돌면서 grid 에 add 했습니다.
add 시 loop 돌때 원하는 작업을 하는 걸로 해서 처리 했습니다.
감사합니다.
그런데 제가 질문한 내용 원하는 답변 없음으로 완료 처리를 할 수가 없나 보네요…
해결책 체크는 있는데… 질문 완료 같은 기능은 없나보네요…
해결하셨다니 다행입니다.
처리하신 부분을 코드로 남겨주시면 다른 분들에게도 좋을 것 같아요!
(그리고 코드로 남겨 주시면 다른 방법이 나올 수 도 있고요.)
@조이_엔 직접 해결하신 방법을 해결책으로 선택해주시면 될 것 같습니다.
@조이_엔 님께서 질문한 내용에 대해 자세히 답변드리고 싶었지만 제가 질문을 잘못 이해한 것 같아요…
이미 차선책으로 해결하셨지만 제가 궁금한 점을 여쭤볼께요.
바인딩 된 데이터에서 직접 원하는 컬럼의 데이터를 가져오는 건 어떤가요?
보통 Collection 형태의 데이터일텐데, Linq 구문 이용해서 가져올 수도 있을 것 같아서요.
public class SomeData
{
public int Num { get; set; }
public string Name { get; set; }
}
...
public List<SomeData> DataGridSource { get; set; }
...
var nameList = DataGridSource.Where(row => row.Name).ToList();
댓글을 이제야 봤네요…죄송합니다.
말씀 처럼 linq 를 사용해서 해도 될거 같네요…
담에 다른 작업할 때 참고 하도록 하겠습니다.
감사합니다.
답변이 늦어 죄송합니다…
제가 처리한 코드 입니다…
간단하고 허접한 코드입니다.
depth1_code 의 값이 변함에 따라 depth1_name 변수의 값이 바껴서 grid 에 add 되게 했습니다.
JObject send_Json = new JObject();
JObject receive_Json = JObjectConn.JObjectJson(url, send_Json);
JArray receive_Jarr = JArray.Parse(receive_Json["datas"].ToString());
int loopIndex = 0;
foreach (JObject item in receive_Jarr)
{
depth1_code = item["depth1_code"].ToString();
depth1_name = item["depth1_name"].ToString();
depth2_code = item["depth2_code"].ToString();
depth2_name = item["depth2_name"].ToString();
if (depth1_code == before_depth1_code)
{
depth1_name = "";
}
else
{
before_depth1_code = depth1_code;
}
dgView.Rows.Add();
//-- 2. 추가한 row 의 Column 에 값을 넣는다.
dgView[0, loopIndex].Value = depth1_name;
dgView[0, loopIndex].ReadOnly = true;
dgView[1, loopIndex].Value = false;
dgView[2, loopIndex].Value = depth2_code;
dgView[3, loopIndex].Value = depth2_name;
dgView[3, loopIndex].ReadOnly = true;
loopIndex++;
}