يتم الحفاظ على قاعدة قاعدة الشفرة هذه بنشاط ولكن لم يتم تطويرها بنشاط. ستحصل طلبات السحب بميزات جديدة على فرصة ضئيلة للغاية للاندماج. في العديد من الجوانب ، يتم "قاعدة قاعدة الشفرة هذه".
لا تتردد في استخدام الرمز ، ولكن الامتناع عن وجود آمال في أن يكون له أي تطلعات في أن تكون أكثر من أي شيء أكثر مما هو عليه حاليًا.
MVVM Dialogs هي مكتبة تبسيط مفهوم فتح الحوار من نموذج العرض عند استخدام MVVM في WPF (إطار عرض Windows). إنه يمكّن المطور من كتابة اختبارات الوحدة بسهولة لنماذج العرض بالطريقة نفسها التي تتم كتابة اختبارات الوحدة لفصول أخرى.
قامت المكتبة ببناء دعم للحوار التالي:
لفتح نافذة مشروط ، قم بتزيين العرض باستخدام مربعات DialogServiceViews.IsRegistered المرفقة.
< UserControl
x : Class = " DemoApplication.Features.Dialog.Modal.Views.ModalDialogTabContent "
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns : x = " http://schemas.microsoft.com/winfx/2006/xaml "
xmlns : md = " https://github.com/fantasticfiasco/mvvm-dialogs "
md:DialogServiceViews.IsRegistered= " True " >
...
</ UserControl > مع تسجيل العرض ، أصبح نموذج العرض قادرًا الآن على فتح مربع حوار باستخدام واجهة IDialogService :
public class ModalDialogTabContentViewModel : INotifyPropertyChanged
{
private readonly IDialogService dialogService ;
public ModalDialogTabContentViewModel ( IDialogService dialogService )
{
this . dialogService = dialogService ;
}
.. .
private void ShowDialog ( )
{
var dialogViewModel = new AddTextDialogViewModel ( ) ;
bool ? success = dialogService . ShowDialog ( this , dialogViewModel ) ;
if ( success == true )
{
Texts . Add ( dialogViewModel . Text ) ;
}
}
} تسمى الحوار في WPF التي لا ترث من Window الحوار المخصص. يتم دعم مربعات الحوار المخصصة هذه ، ولكن لكي تعرف DialogService كيفية التفاعل معها ، سيتعين عليك تنفيذ واجهة IWindow .
MVVM Dialogs هو افتراضيًا فتح مربع رسالة Windows القياسي أو مربع حوار ملف فتح عند مطالبة بذلك. ومع ذلك ، يمكن تغيير هذا من خلال توفير تنفيذك الخاص بـ IFrameworkDialogFactory إلى DialogService .
لمزيد من المعلومات حول مفاهيم الحوار MVVM والعينات الممتدة على الموضوعات ، يرجى الاطلاع على الويكي.
لصالح كل ما نهدف إلى اللعب بشكل لطيف مع أطر عمل MVVM الحالية. إنشاء تطبيق جديد يمكن أن يكون شاقًا. يجب اتخاذ الكثير من القرارات ، وبعض الأخطاء يصعب تصحيحها من غيرها. لمساعدتك في طريقك ، قمنا بإنشاء تطبيق عينة باستخدام بعض أطر MVVM الشهيرة الموجودة اليوم ، لنوضح لك كيفية دمج حوار MVVM في هذا الإطار.
يتم تطبيق تطبيق العينة حاليًا باستخدام الأطر التالية.
إذا لم يكن إطارك المحدد من بين الإطار المدرج ، فيرجى إنشاء طلب سحب جديد وإخبارنا بذلك.
العالم مليء بالثلوج وجميع التطبيقات فريدة من نوعها بطريقة ما. لا تطالب MVVM Dialogs بحل جميع المشكلات المتعلقة بحوار الحوار ، ولكنه حل رائع لمعظم التطبيقات. قد يتطلب الباقي ، والتطبيقات التي تنحرف عن المسار المشترك ، تغييرات محددة في سلوك مربع حوار MVVM. بالنسبة لأولئك هناك حوار MVVM Contrib. مستودع مع الميزات والوظائف التي طورها مجتمع المصدر المفتوح ، وحل الاحتياجات المحددة للغاية.
إذا كانت مربعات حوار MVVM لسبب ما لا تناسب تطبيقك ، فثر مشكلة في حوار MVVM ، وسنرى ما يمكننا القيام به. يتم تنفيذ هذه الميزات دائمًا من قبل المجتمع ، ولكن رعاة من قبل المشرفين في مربعات الحوار MVVM.
إذا كنت ترغب في تضمين مربعات حوار MVVM في مشروعك ، فيمكنك تثبيته مباشرة من Nuget.
لتثبيت مربعات حوار MVVM ، قم بتشغيل الأمر التالي في وحدة تحكم Manager:
PM > Install-Package MvvmDialogsبدأت مربعات حوار MVVM كمقال عن CodeProject مع مراجعتها الأولى التي نشرت في مايو 2009. في ذلك الوقت ، كان MVVM لا يزال جديدًا وجديدًا ، ولم يتم نشر ضوء MVVM الذي تم إهماله الآن. في الواقع ، لم يكن هناك أي من مكتبات MVVM المستخدمة اليوم في ذلك الوقت. خرجت حوار MVVM بدافع الضرورة للعمل مع مربعات الحوار من نموذج العرض ، إلا أن رد فعل على حقيقة أنه على الرغم من أن MVVM كان نمطًا شائعًا ، إلا أن الدعم لتنفيذه كان محدودًا إلى حد ما.
لذلك ، كان المنشور الأولي منذ أكثر من 10 سنوات. إعطاء هذا الفكر. مشروع مفتوح المصدر لا يزال يتم الحفاظ عليه بعد 10 سنوات وذات صلة للغاية بإصدارات .NET. خذ هذا كل ما عليك فيه المطالبة برمز المصدر المفتوح متقلبة!
اكتسبت MVVM Dialogs سمعة كافية ليتم إدراجها على Awesome .NET! ، في الشركة مع مكتبات MVVM أخرى.
شكرًا لك Jetbrains على مبادرتك المهمة لدعم مجتمع المصدر المفتوح مع تراخيص مجانية لمنتجاتك.
