هل هناك طريقة قياسية لإرجاع القيم من العرف الحوارات في نظام التشغيل Windows النماذج ؟

StackOverflow https://stackoverflow.com/questions/36984

  •  09-06-2019
  •  | 
  •  

سؤال

حتى إن المشروع يحتوي على عدد قليل العرف الحوارات التي تفعل أشياء مثل مطالبة المستخدم في عيد ميلاده ، أو أيا كان.الآن هم فقط تفعل أشياء مثل وضع this.Birthday الملكية بمجرد الحصول على إجابة (الذي هو من نوع DateTime?, مع فارغة مما يدل على أن "إلغاء").ثم المتصل يتفقد Birthday الملكية الحوار خلقت لمعرفة ما أجاب المستخدم.

سؤالي هو ، هل هناك أكثر من نمط قياسي لفعل مثل هذه الاشياء ؟ وأنا أعلم أننا يمكن تعيين this.DialogResult الأساسية موافق/إلغاء الاشياء, ولكن هناك أكثر من طريقة في ويندوز أشكال على شكل بيان "هذه هي البيانات التي تم جمعها"?

هل كانت مفيدة؟

المحلول

أود أن أقول تعريض الممتلكات على عهدك الحوار هو الاصطلاحية وسيلة للذهاب لأن هذه هي الطريقة القياسية الحوارات (مثل تحديد/OpenFileDialog) تفعل ذلك.شخص ما يمكن القول أنها أكثر وضوحا و نية وكشف عن أن يكون ShowBirthdayDialog() الأسلوب بإرجاع نتيجة تبحث عنه, ولكن بعد إطار نمط وربما كان من الحكمة وسيلة للذهاب.

نصائح أخرى

هل هناك أكثر من نمط قياسي لفعل مثل هذه الاشياء ؟

لا يبدو أنك باستخدام النهج الصحيح.

إذا كان الحوار يعود DialogResult.حسنا نفترض أن كل ما يلزم من خصائص في مربع الحوار صالحة.

بالنسبة لي الخلاف مع الحوار عودته مستوى الحوار الردود ومن ثم الوصول إلى النتائج عن طريق خصائص هو الطريق للذهاب.

سببين جيدة من حيث أجلس:

  1. الاتساق - أنت دائما تفعل نفس الشيء مع الحوار و طبيعة السؤال تشير إلى أن أنماط جيدة (-:على الرغم من أن نفس القدر من السؤال هو ما إذا كان هذا هو نمط جيد ؟
  2. فإنه يسمح لعودة قيم متعددة من الحوار - حسنا هناك جديد كليا المناقشة هنا جدا لكن تطبيقها العملي يعني أن هذا هو ما يريد في بعض الظروف ليست دائما مناسبة أو المستحسن أن حزمة القيم فقط بحيث يمكنك تمرير في كل شيء دفعة واحدة.

تدفق المنطق هو لطيف جدا:

if (Dialog == Ok)
{
    // Do Stuff with the entered values
}
else
{
    // Respond appropriately to the user cancelling the dialog
}

لها سؤال جيد - نحن من المفترض أن مسألة مثل هذه الأشياء - ولكن بالنسبة لي النمط الحالي هو واحد لائق.

مرف

بالنسبة مشروط الإدخال الحوارات, أنا عادة الزائد ShowDialog وتمر بها params البيانات أحتاج.

DialogResult ShowDialog(out datetime birthday)

أنا عموما تجد أنه من الأسهل اكتشاف وفهم مقابل خلط ممتلكاتي مع 100+ أن فئة النموذج يعرض.

عن الأشكال عادة ما تحكم و IView واجهة يستخدم للقراءة فقط خصائص لتمرير البيانات.

لطالما فعلت ذلك بالضبط الطريقة التي كنت تصف.أنا الغريب أن نرى إذا كان هناك أكثر قبولا النهج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top