DataGridview 셀에서 내 엔터티 프레임 워크의 개체 목록을 나타내려고합니다.DataGridview에서 셀에 바인딩 할 개체 목록
표시하려면 셀 서식 지정 이벤트를 재정의하고 셀의 값을 쉼표로 구분 된 개체 ID 목록으로 설정하십시오.
이제 사용자가 해당 셀을 편집하려면 입력으로 무엇인가해야합니다.
내가 생각했던 것은 셀 패싱을 재정의하고 데이터 구조에 올바른 개체를 설정하고 셀을 표시하는 것이 었습니다. 그러나 컨트롤이 던져 캐스팅 예외없이 해당 내용을 설정할 위치를 볼 수 없기 때문에 셀을 그냥 비어 있습니다. 포맷 이벤트를 다시 호출 할 수 있습니까?
이 접근법을 잊어 버리고 코드에서이 모든 것을 데이터 격자에 바인딩 할 수있는 뷰를 출력하는 다른 레이어가 있어야하나요?
고마워요.
private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "Categories")
{
String catids = dataGridView1.CurrentCell.Value.ToString();
Product p = (Product)productBS.Current;
//DataRow dataRow = ((DataRowView)bindingSource1.Current).Row;
p.Categories.Clear();
String[] catstrings = catids.Split(',');
foreach (var cs in catstrings)
{
int catid = 0;
int.TryParse(cs, out catid);
if (catid != 0)
{
// Find this cat list in the BS and change it
p.Categories.Add(_db.Categories.Find(catid));
}
}
e.Value = p.Categories;
e.ParsingApplied = true;
}
}
https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell(v=vs.110).aspx. 이것은 도움이 될 것입니다 – Ramankingdom