저는 학교에서 회사의 프로젝트를 진행하고 있으며 티켓 정보가있는 DataGrid를 만들어야합니다. ID 번호, 티켓 설명.checkboxcolumn DataGrid에 부울 값을 바인딩하는 방법 WPF
데이터베이스의 티켓 테이블에 '품목'열이 있으며 "인보이스 발행되지 않음", "인보이스 발행 됨"또는 "오퍼"값을 가질 수 있습니다. DataGrid의 세 번째 열은 checkboxcolumn이어야하며 상사는 체크 박스를 선택하면 티켓이 인보이스 발행되어야 함을 의미하며, 선택을 취소하면 "송장 발행하지 않음"또는 " 제안 ", 그건별로 중요하지 않습니다. 내 문제는 "ID"및 "설명"필드를 바인딩 할 때, 나는 'true 또는 false'필드로 checkboxcolumn을 바인딩하는 방법을 모르겠다? 나는 표에서 표 필드를 바인딩하는 방법 만 알고 있지만 불린 필드를 추가하여 코드에서 "청구될 때"를 결정할 수 있습니다. 부울 필드는 true이어야하고 송장을 발행하지 않아야합니다. 거짓이어야한다. 그래서 체크되지 않았다.
dgTickets.DataContext = new List<ISSUE>();
dgTickets.Columns.Add(new DataGridTextColumn { Header = "Id", Binding = new Binding("IM_ISSUE_NO") });
dgTickets.Columns.Add(new DataGridTextColumn { Header = "Description", Binding = new Binding("IM_DESCRIPTION") });
DataGridCheckBoxColumn chk = new DataGridCheckBoxColumn();
chk.Header = "To be invoiced?";
List<ISSUE> lTickets = new List<ISSUE>();
lTickets = _ISSUEBO.getTickets();
//here I want to make a list of booleans when the tickets are 'to be invoiced or not' in the database
List<bool> lChecks = new List<bool>();
int intTeller = 0;
bool boolFact = false;
foreach (ISSUE i in lTickets) {
switch (i.IM_ITEM_CODE) {
case "TO BE INVOICED":
boolFact = true;
break;
case "NOT TB INVOICED":
boolFact = false;
break;
case "OFFER":
boolFact = false;
break;
default: break;
}
lChecks.Add(boolFact);
intTeller++;
}
Binding b = new Binding("lChecks"); //??? this is probably wrong, but i don't know how to do
chk.Binding = b;
this.dgTickets.Columns.Add(chk);
dgTickets.ItemsSource = lTickets;
아무도 도와 줄 수 있습니까?
미리 감사드립니다.
+1 :-) 부울 값에 따라. ViewModel을 만들고 거기에 Issues 컬렉션을 노출하고 ViewModel을 MainWindow.DataContext로 설정하고 XAML에서 DataGrid를 선언하는 것이 좋습니다. –
나는이 경우에 약간의 과잉 공격이 될 것으로 짐작하기 때문에 나는 멀리까지 가지 않았다.)하지만 당신은 당연한 것입니다 ... – David
고마워요 !! 그것은 작동합니다! –