Drag و Drop کردن در الگوی MVVM
برای اضافه کردن یه قابلیت جدید به برنامه ي OPMLtools نیاز به Drag&Drop داشتم. برای انجام Drag&Drop تو حالت عادی تقریبا کار سختی نداریم ولی وقتی Drag&Drop رو تو MVVM بخوایم کار سخت میشه و… بعد جستجو به فریمورک متن باز GongSolutions رسیدم که کار Drag&Drop رو تو MVVM خیلی ساده میکنه. برای دانلود dll مربوطه میتونید از این روش کمک بگیرید یا از اینجا دانلود کنید. و اما نحوه استفاده همونطور که تو کد XAML بالا میبیند نحوه اضافه کردن قابلیت Drag&Drop خیلی سادس ویژگی های IsDragSource و IsDropTarget همونطور که از اسمشون پیداس مشخص میکنن که آیا کنترل مورد نظر میتونه مبدا و مقصد یک عمل Drag&Drop باشه. قسمت مهم این کد مقید کردن هندلر رخداد Drop به ViewModel ما به کمک ویژگی DropHandler هست. و اما تو ViewModel بازم کار برای ما راحت شده فقط کافیه اینترفیس IDropTarget رو پیاده سازی کنیم که شامل 2 متد DragOver و Drop میشه. public void DragOver(DropInfo dropInfo) { if (dropInfo.Data is OpmlModel && dropInfo.TargetItem is OpmlModel...