문제가 있습니다. 나는 동적으로 생성 된 레이아웃과 함께 Windows Forms 응용 프로그램을 가지고 있지만 성능에 문제가 있습니다. 이 양식에서는 DataBinding
을 .NET 4.0
에서 사용하고 데이터 바인딩 후 설정은 정상적으로 작동하지만 ONE 컨트롤에 대한 바인딩 설정 시간은 약 초에 내 응용 프로그램을 차단합니다. 나는 몇 가지 컨트롤을 가지고 있으며 빙빙는 시간은 2 분입니다.C# .NET 4.0에서 느린 데이터 바인딩 설정 시간
나는 모든 가능한 해결책을 시도해, 나는 각자 바인딩 종류를 쓰기없이 아이디어가 없다. 내 코드가 왜 잘못 되었습니까? 문제의 코드 라인없이
case "Boolean":
{
Binding b = new Binding("Checked", __bindingsource, __ep.Name);
CheckBox cb = new CheckBox();
/*
* HERE is the start of problem
*/
cb.DataBindings.Add(b);
/*
* HERE is the end of problem
*/
__flp.Controls.Add(cb);
__bindingcontrol.AddBinding(b);
break;
}
모두 빠르고 바인딩없이 작동 ;-(하지만 난 정상 속도에서 회전을 결합 할 수 있습니다. 생성 시간에
PS1. 나는 부유 한 레이아웃을.
PS2를. TextBox'es, PictureBoxe, CheckBox 같은 바인딩 문제가 있습니다.
문제를 디버깅하는 방법을 알려면 vs2010 프로파일 러에서 바인딩 문제 만 알았습니다.
,451,515,- System.Windows.Forms.Control.ControlCollection.Add (클래스 System.Windows.Forms.Control)
- System.Windows.Forms.ControlBindingsCollection.Add (클래스 System.Windows.Forms.Binding)
편집 : DataContext는 데이터베이스에서 가져온 것입니다. (엔터티 프레임 워크)
'__bindingsource'는 (는) 무엇을보고 있습니까? –
@Marc Gravell : __bindingsource는 System.Windows.Forms.BindingSource이며 다른 형식으로 선언되고이 형식의 DataGridView에 바인딩되며이 형식 (dynamicaly)은 생성자 인수로 전달됩니다. – Svisstack
Entity Framework 쿼리는 지연 시간이 있습니다. 이전에는 강제로 실행하지 않는 한 바인딩 시간에만 실행됩니다 (단, 바인딩 시간에 두 번 실행될 수도 있음). 따라서 쿼리가 복잡한 경우 언급 한 행에서 논리적으로 성능 문제가 표시됩니다. 그런 다음 체적에 관한 표시와 함께 쿼리의 구성 논리를 표시 할 수 있습니까? – Marcanpilami