PDA

View Full Version : حرفه ای: مشکل در ایجاد خاصیت درگ دروپ (drag and drop) در RadGridView مربوط به کامپوننت‌های telerik



mostafah110
جمعه 13 آذر 1394, 19:14 عصر
سلام؛
من با استفاده از RadGridView که از کامپوننت‌های شرکت Telerik می‌باشد داده‌های خود را مدیریت می‌کنم. مشکلی که پیش آمده برای من این است که در حال حاضر نیاز به پیاده‌سازی خاصیت drag and drop در این کامپوننت بکنم. یعنی یک سطر را به عنوان مثال از یک radGridView به یک RadGridView دیگر منتقل کنم. با استفاده از این لینک (http://www.telerik.com/help/winforms/gridview-rows-drag-and-drop.html) توانستم به این منظور برسم، اما مشکل جدیدی به وجود آمد و آن هم این است که وقتی در یک کلاس از RadGridView ارث می‌برم و با استفاده از این ارث‌بری خاصیت drag and drop را با توجه به لینک پیاده‌سازی می‌کنم و به یک کنترل جدید می‌رسم که خاصیت drag and drop را دارد. این مشکل پیش می‌آید که دیگر Theme پشتیبانی نمی‌شود. مثلا دیگر تم ویندوز ۸ پشتیبانی نشده و به یک حالت transparent آن را نمایش می‌دهد. واقعا موندم که چکار کنم. نمونه کد زیر ارث‌بری من را نشان می‌دهد. برای اطلاعات بیشتر به همون لینکی که اشاره کردم (http://www.telerik.com/help/winforms/gridview-rows-drag-and-drop.html)مراجعه کنید. خیلی ممنون میشم کمکم کنید.
در ضمن اگر راه حل دیگری که این مشکل را حل کند هم پیشنهاد کنید خیلی خوبه. یعنی بتونم همین خاصیت drag and drop رو پیاده‌سازی کنم و مشکلی پیش نیاد.

public class DragAndDropRadGrid : RadGridView {
public DragAndDropRadGrid()
{
this.MultiSelect = true;


//handle drag and drop events for the grid through the DragDrop service
RadDragDropService svc =
this.GridViewElement.GetService<RadDragDropService>();
svc.PreviewDragStart += svc_PreviewDragStart;
svc.PreviewDragDrop += svc_PreviewDragDrop;
svc.PreviewDragOver += svc_PreviewDragOver;


//register the custom row selection behavior
var gridBehavior = this.GridBehavior as BaseGridBehavior;
gridBehavior.UnregisterBehavior(typeof(GridViewDat aRowInfo));
gridBehavior.RegisterBehavior(typeof(GridViewDataR owInfo), new RowSelectionGridBehavior());


}

...

ژیار رحیمی
شنبه 14 آذر 1394, 10:57 صبح
سلام در سازنده کلاس DragAndDropRadGrid مجدد خاصیت ThemeName رو مقدار دهی کن ببین مشکلت حل میشه

this.ThemeName = "Windows8";