এটি করার দুটি ভাল উপায় রয়েছে, 1) একটি কথোপকথন পরিষেবা (সহজ, পরিষ্কার) এবং 2) সহায়তা সহ দেখুন। সহায়তা সহ দেখুন কিছু ঝরঝরে বৈশিষ্ট্য সরবরাহ করে তবে এটি সাধারণত মূল্য দেয় না।
ডায়ালগ সার্ভিস
ক) কনস্ট্রাক্টর বা কোনও নির্ভরশীল ধারক হিসাবে একটি ডায়ালগ পরিষেবা ইন্টারফেস:
interface IDialogService
{
Task ShowDialogAsync(DialogViewModel dlgVm);
}
খ) আইডিয়ালোগসোর্সির আপনার প্রয়োগের জন্য একটি উইন্ডো খোলা উচিত (বা সক্রিয় উইন্ডোতে কিছু নিয়ন্ত্রণ ইনজেকশন করা), প্রদত্ত ডিএলজিভিএম ধরণের নামের সাথে সম্পর্কিত একটি ভিউ তৈরি করতে হবে (ধারক নিবন্ধকরণ বা কনভেনশন ব্যবহার করতে পারেন বা সম্পর্কিত ডেটা টেম্পলেটগুলির সাথে সম্পর্কিত বিষয়বস্তু)। শো ডায়ালগএসিঙ্কের উচিত একটি টাস্কমিলনসোর্স তৈরি করা উচিত এবং এর .কাজের স্বত্ব ফিরিয়ে দেওয়া উচিত। ডায়ালগভিউমোডেল ক্লাসে নিজেই এমন একটি ইভেন্ট প্রয়োজন যা আপনি যখন বন্ধ করতে চান তখন ডেরিভড ক্লাসে ডাকতে পারেন এবং ডায়লগ ভিউটিতে ডায়লগটি বন্ধ / লুকিয়ে রাখতে এবং টাস্ককম্পলশনসোর্সটি সম্পূর্ণ করার জন্য দেখতে পারেন।
খ) ব্যবহার করার জন্য, কেবলমাত্র ডায়লগভিউমোডেল-উত্পন্ন ক্লাসের জন্য আপনার ডায়ালগস সার্ভিস.শোডায়ালগ (মাইডিএলজিভিএম) কল করুন। প্রত্যাবর্তনের প্রত্যাশার পরে, কী ঘটেছে তা নির্ধারণ করার জন্য আপনার ডায়ালগ ভিএম-এ যুক্ত হওয়া বৈশিষ্ট্যগুলি দেখুন; এমনকি আপনার কলব্যাকেরও দরকার নেই।
সহায়তা দেখুন
এতে আপনার ভিউ মডেলটিতে একটি ইভেন্ট শুনছেন। কোডটি পিছনে থাকা এবং রিসোর্সের ব্যবহার এড়াতে এই সমস্তটি একটি মিশ্রিত আচরণে আবৃত করা যেতে পারে যদি আপনি এত ঝোঁক থাকেন (এফএমআই, স্টেরয়েডগুলিতে এক ধরণের সংশ্লেষযুক্ত সংযুক্ত সম্পত্তি দেখতে "আচরণ" বর্গটি সাবক্লাস করুন)। আপাতত, প্রতিটি দৃশ্যে আমরা ম্যানুয়ালি এটি করব:
ক) একটি কাস্টম পেওলড (একটি ডায়ালগভিউমোডেল উত্পন্ন ক্লাস) সহ একটি ওপেনএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স ডায়ালগএভেন্ট তৈরি করুন।
খ) ভিউটির অনডেটাঙ্কটেক্সট চেঞ্জড ইভেন্টটিতে ইভেন্টটি সাবস্ক্রাইব করুন। পুরানো মান! = নাল এবং উইন্ডোর আনলোড হওয়া ইভেন্টে লুকিয়ে রাখার এবং সাবস্ক্রাইব করতে ভুলবেন না।
গ) ইভেন্টটি আগুনের সময়, ভিউটি আপনার দৃষ্টিভঙ্গিটি খুলুন, যা আপনার পৃষ্ঠার কোনও উত্সে থাকতে পারে বা আপনি এটি অন্য কোথাও কনভেনশন দ্বারা সনাক্ত করতে পারেন (ডায়ালগ পরিষেবা পদ্ধতির মতো)।
এই পদ্ধতিটি আরও নমনীয়, তবে ব্যবহারের জন্য আরও কাজ প্রয়োজন। আমি এটি বেশি ব্যবহার করি না। একটি দুর্দান্ত সুবিধা হ'ল উদাহরণটি উদাহরণস্বরূপ, কোনও ট্যাবের অভ্যন্তরে দৃশ্যটি শারীরিকভাবে রাখার ক্ষমতা। আমি এটি বর্তমান ব্যবহারকারীর নিয়ন্ত্রণের সীমানায় রাখার জন্য একটি অ্যালগরিদম ব্যবহার করেছি, বা যদি বড় না হয় তবে একটি বিশাল পর্যাপ্ত ধারক পাওয়া না পাওয়া পর্যন্ত ভিজ্যুয়াল ট্রিটিকে অতিক্রম করুন।
এটি কথোপকথনগুলিকে প্রকৃতপক্ষে ব্যবহৃত স্থানটির কাছাকাছি থাকতে দেয়, কেবলমাত্র বর্তমান ক্রিয়াকলাপ সম্পর্কিত অ্যাপ্লিকেশনটির কিছু অংশ কমিয়ে দেয় এবং ব্যবহারকারীকে ম্যানুয়ালি ডায়ালগগুলি দূরে সরিয়ে না দিয়ে এমনকি অ্যাপ্লিকেশনের মধ্যে ঘুরতে দেয়, এমনকি একাধিক অর্ধ- মডেল ডায়ালগগুলি বিভিন্ন ট্যাব বা উপ-দর্শনগুলিতে খোলে।