আমি ডাব্লুপিএফ-তে বিভিন্ন ডেটা বন্ডিং মোডগুলি বুঝতে পারি না, যেমন:
- একমুখী
- দ্বিপথ
- একবার
- ইত্যাদি ...
এই প্রতিটি মোডের অর্থ কী?
এগুলি কখন ব্যবহার করা উচিত?
উত্তর:
OneWay: আপনি যখন ব্যবহারকারীর ইন্টারফেসটি আপডেট করার জন্য সীমাবদ্ধ সম্পত্তিটি চান তখন এটি ব্যবহার করুন।TwoWay: এটির মিল OneWayএবং OneWayToSourceমিলিত একই আচরণ । আবদ্ধ সম্পত্তি ইউজার ইন্টারফেস আপডেট করবে, এবং ইউজার ইন্টারফেসের পরিবর্তনগুলি সীমাবদ্ধ সম্পত্তিটি আপডেট করবে (আপনি এটি একটি TextBoxবা Checkboxউদাহরণ সহ ব্যবহার করবেন ))OneTime: এটির সাথে একই আচরণ রয়েছে এটি OneWayব্যতীত এটি কেবল একবার ব্যবহারকারীর ইন্টারফেস আপডেট করবে। বাঁধার জন্য এটি আপনার ডিফল্ট পছন্দ হওয়া উচিত (বিভিন্ন কারণে আমি এখানে বিশদভাবে বর্ণনা করব না), আপনার যদি অতিরিক্ত কার্যকারিতা প্রয়োজন হয় তবে আপনার কেবলমাত্র অন্যান্য ধরণের বাইন্ডিং ব্যবহার করা উচিত।OneWayToSource: এটির বিপরীত OneWay- ব্যবহারকারীর ইন্টারফেসের মান পরিবর্তনগুলি সীমাবদ্ধ সম্পত্তিটি আপডেট করে।আপনি যদি কিছু নির্দিষ্ট না করেন তবে আচরণটি আপনি ব্যবহার করছেন এমন নিয়ন্ত্রণের উপর নির্ভর করবে।
আরও তথ্যের জন্য, BindingModeএমএসডিএন-তে এনাম দেখুন ।
একটি বাঁধাই দুটি সত্তা নিয়ে গঠিত:
লক্ষ্যটি হ'ল একটি DependencyObject(কাজের বাধ্যবাধকতার জন্য) এবং উত্সটি হয় একটি হতে পারে DependencyObjectবা এটি পরিবর্তিত হওয়ার বিষয়ে ডাব্লুপিএফ বাইন্ডিং সিস্টেমটি অনুকরণ করার জন্য কোনও পদ্ধতি থাকতে হবে (ইমপ্লিমিটিং INotifyPropetyChnagedইন্টারফেস)।
এমভিভিএম ভিউমোডেল প্রকল্পটি সম্পর্কিত যে কোনও ভিউ সম্পর্কিত রেফারেন্স থেকে মুক্ত থাকার পরামর্শ দেয় এবং তাই INotifyPropertyChangedসোর্স অবজেক্টটি ডাব্লুপিএফ বাইন্ডিং দ্বারা শোনার জন্য ইন্টারফেস ব্যবহার করার পরামর্শ দেওয়া হয় । বাঁধাই উত্সের সম্পত্তি এবং টার্গেটের একটি সম্পত্তির মধ্যে ঘটে (একটি হতে হবে DependencyProperty)। যেমন দ্য TextPropertyএর TextBoxবর্গ (বলুন) এর DataBound হয় UserNameদৃশ্য মডেল সম্পত্তি। ডাব্লুপিএফ বাইন্ডিং চার ধরণের বাইন্ডিং অফার করে। মনে রাখবেন, বাইন্ডিং ইউআই থ্রেডে চালিত হয় যদি না আপনি অন্যথায় চালানোর জন্য নির্দিষ্ট করে থাকেন।
UserNameসম্পত্তি পরিবর্তন করেন তবে এটি পাঠ্য বাক্সে প্রতিফলিত হবে। এটি অন্তর্বর্তী ব্যয়ের কারণ বাঁধাই সিস্টেমটি কেবলমাত্র পরিবর্তনের জন্য উত্স দেখে ।TextPropertyএবং UserNameসম্পত্তি উভয়ই সিঙ্কে থাকবে এবং এক পরিবর্তিত হলে একে অপরকে আপডেট করবে। এটি সবচেয়ে ব্যয়বহুল কারণ পরিবর্তনের জন্য বাইন্ডিং সিস্টেমকে উভয় পক্ষকেই দেখতে হয়।TextProperty, UserNameসম্পত্তি পরিবর্তিত মান গ্রহণ করবে। এটি আবার মধ্যবর্তী ব্যয়বহুল কারণ বন্ডিং সিস্টেমটি পরিবর্তনের জন্য কেবল লক্ষ্য লক্ষ্য করে ।Label, TextBlockইত্যাদিআপনি যদি কিছু উল্লেখ না করেন তবে প্রতিটি লক্ষ্য সংস্থার সাথে একটি ডিফল্ট বাঁধাই মোড যুক্ত থাকে। যেমন TextPropertyএকটি TextBoxএর ডিফল্ট বাঁধাই মোড রয়েছে TwoWay। জন্য TextPropertyএকটি এর TextBlockএটা এক উপায়।
আপনি সঠিক মোডটি বেছে নেওয়ার পরামর্শ দেওয়া হচ্ছে কারণ এটি অ্যাপ্লিকেশনটির বিলম্বিতা হ্রাস করতে আপনাকে সহায়তা করতে পারে বিশেষত যেখানে আপনার ইউআইতে আপনার বিশাল সংখ্যক নিয়ন্ত্রণ রয়েছে in
এমভিভিএম সম্পর্কে আরও জানতে এখানে আমার লেখা একটি নিবন্ধ রয়েছে।