PDA

View Full Version : تغییر عملکرد نمایش کنترل TreeView



PetekDincos
یک شنبه 12 دی 1389, 19:58 عصر
با سلام
من تو یکی از فرم هام داده هایم را از سه جدول خونده و در یک کنترل TreeView نشون می دم و لود این صفحه 5 تا 6 ثانیه ای طول می کشد که این مشکل مربوط به UI برنامه است چون این کنترل TreeView تقریبا 160 تا رکورد را یکجا میخواد نشون بده و این عمل باعث این کندی می شود آیا راهی است که کنترل TreeView داده ها را یکجا نشون نده بشه اول فرم نشون داد و دادها را کم کم نشون داد که باعث هنک 5 تا 6 ثانیه ای برنامه نشه با تشکر

رضا عربلو
یک شنبه 12 دی 1389, 22:13 عصر
160 نود خیلی کم است مشکل رو در جایی دیگر جسنتجو کن.
علی الیحال اگر می خواهی این زمان را کاهش دهی می تونی از تکنیک lazy loading استفاده کنی. به این معنی که لازم نیست تمام نود ها رو همون اول لود کنی :

http://www.codeproject.com/KB/tree/WPFTreeViewLazyLoad.aspx
http://www.mattlong.com.au/?p=60
http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx
http://www.codeproject.com/KB/WPF/versatile_treeview.aspx

PetekDincos
یک شنبه 12 دی 1389, 23:40 عصر
با سلام
برنامه را وقتی با IDE اجر می کنم 7 ثانیه طول می کشه اما وقتی خود exe را اجرا می کنم تقریبا 1.5 ثانیه طول می کشه و نمی دونم مشکل از کجاست با تشکر

Amir Oveisi
سه شنبه 14 دی 1389, 17:35 عصر
کدی رو که برای این کار نوشتین رو قرار بدید تا بررسی بشه

PetekDincos
جمعه 24 دی 1389, 09:59 صبح
با سلام
ببخشید که این سوال را اینجا مطرح می کنم کوئری که من از سه جدول گرفتم به صورت IQueryable است و خاصیت IQueryable اینه که در زمان تعریف یک کوئری از این نوع این کوئری اجرا نمی شه و فقط در زمان نیاز به این کوئری واکشی صورت می گیرد و سوال من اینه که وقتی که می خوام سه تا از این کوئری ها را به هم Join کنم آیا در زمان Join کردن واکشی صورت می گیره یا در زمان بایند کردن به یک کنترل این واکشی صورت می گیره با تشکر

رضا عربلو
شنبه 25 دی 1389, 07:39 صبح
در زمان بایند کردن واکشی صورت می گیرد. در واقع هنگامی که شما از اشیای از نوع IQueryable استفاده می کنید. تا زمانی که یک کنترل و یا قطعه ای از کدتان بخواهد به محتوای آن دسترسی داشته باشد واکشی نمی شوند.

PetekDincos
شنبه 25 دی 1389, 09:03 صبح
با سلام
پس بحث Lazy Loading پیاده سازی می شه چون من در TreeView وقتی یک آیتمی را که زیر مجموعه داره Expand می کنم یکمی طول می کشه با تشکر