বিভিন্ন ডাব্লুপিএফ বাইন্ডিং মোডগুলি কী কী?


89

আমি ডাব্লুপিএফ-তে বিভিন্ন ডেটা বন্ডিং মোডগুলি বুঝতে পারি না, যেমন:

  • একমুখী
  • দ্বিপথ
  • একবার
  • ইত্যাদি ...

এই প্রতিটি মোডের অর্থ কী?

এগুলি কখন ব্যবহার করা উচিত?

উত্তর:


162
  • OneWay: আপনি যখন ব্যবহারকারীর ইন্টারফেসটি আপডেট করার জন্য সীমাবদ্ধ সম্পত্তিটি চান তখন এটি ব্যবহার করুন।
  • TwoWay: এটির মিল OneWayএবং OneWayToSourceমিলিত একই আচরণ । আবদ্ধ সম্পত্তি ইউজার ইন্টারফেস আপডেট করবে, এবং ইউজার ইন্টারফেসের পরিবর্তনগুলি সীমাবদ্ধ সম্পত্তিটি আপডেট করবে (আপনি এটি একটি TextBoxবা Checkboxউদাহরণ সহ ব্যবহার করবেন ))
  • OneTime: এটির সাথে একই আচরণ রয়েছে এটি OneWayব্যতীত এটি কেবল একবার ব্যবহারকারীর ইন্টারফেস আপডেট করবে। বাঁধার জন্য এটি আপনার ডিফল্ট পছন্দ হওয়া উচিত (বিভিন্ন কারণে আমি এখানে বিশদভাবে বর্ণনা করব না), আপনার যদি অতিরিক্ত কার্যকারিতা প্রয়োজন হয় তবে আপনার কেবলমাত্র অন্যান্য ধরণের বাইন্ডিং ব্যবহার করা উচিত।
  • OneWayToSource: এটির বিপরীত OneWay- ব্যবহারকারীর ইন্টারফেসের মান পরিবর্তনগুলি সীমাবদ্ধ সম্পত্তিটি আপডেট করে।

আপনি যদি কিছু নির্দিষ্ট না করেন তবে আচরণটি আপনি ব্যবহার করছেন এমন নিয়ন্ত্রণের উপর নির্ভর করবে।

আরও তথ্যের জন্য, BindingModeএমএসডিএন-তে এনাম দেখুন


ধন্যবাদ এটি সহায়ক! ... তবে plz দুইটি উদাহরণ নির্দিষ্ট করে ... আমি কীভাবে এর কোড-পিছনে প্রতিবিম্বিত তা জানতে চাই।
DATT OZA

4
@ ডাট: "নির্দিষ্ট" করে বলতে কী বোঝ? মূলত, আপনি যদি এক্সএএমএল-তে মোড = টু ওয়েয়ে সেট করেন, আপনি যখন জিইউআই মান পরিবর্তন করেন, এটি স্বয়ংক্রিয়ভাবে সি # সম্পত্তি আপডেট করবে। তবে কোড-ব্যাকডে থাকা আপনার সম্পত্তিটি একটি শ্রেণিতে (ভিউমোডেলের মতো) প্রয়োগ করা দরকার যা INotifyPropertyChanged ইন্টারফেস প্রয়োগ করে। কোড-পেছনের মাধ্যমে সেটটির মাধ্যমে সম্পত্তিটির মান পরিবর্তন করা হয়, আপনাকে প্রপার্টি চেঞ্জড কল করতে হবে যাতে জিইউআই মান পরিবর্তন সম্পর্কে অবহিত হয় এবং এটি স্বয়ংক্রিয়ভাবে আপডেট হবে update
ডেভ

4
আপনি যদি কিছু নির্দিষ্ট না করেন, তবে আচরণটি আপনি যে নীতিটি ব্যবহার করছেন তার উপর নির্ভর করবে।
মারো সাম্পিয়েট্রো

39

একটি বাঁধাই দুটি সত্তা নিয়ে গঠিত:

  1. উত্স (সাধারণত এমভিভিএম পরিস্থিতিতে ভিউমোডেল)
  2. লক্ষ্য (ইউআই নিয়ন্ত্রণ)

লক্ষ্যটি হ'ল একটি DependencyObject(কাজের বাধ্যবাধকতার জন্য) এবং উত্সটি হয় একটি হতে পারে DependencyObjectবা এটি পরিবর্তিত হওয়ার বিষয়ে ডাব্লুপিএফ বাইন্ডিং সিস্টেমটি অনুকরণ করার জন্য কোনও পদ্ধতি থাকতে হবে (ইমপ্লিমিটিং INotifyPropetyChnagedইন্টারফেস)।


এমভিভিএম ভিউমোডেল প্রকল্পটি সম্পর্কিত যে কোনও ভিউ সম্পর্কিত রেফারেন্স থেকে মুক্ত থাকার পরামর্শ দেয় এবং তাই INotifyPropertyChangedসোর্স অবজেক্টটি ডাব্লুপিএফ বাইন্ডিং দ্বারা শোনার জন্য ইন্টারফেস ব্যবহার করার পরামর্শ দেওয়া হয় । বাঁধাই উত্সের সম্পত্তি এবং টার্গেটের একটি সম্পত্তির মধ্যে ঘটে (একটি হতে হবে DependencyProperty)। যেমন দ্য TextPropertyএর TextBoxবর্গ (বলুন) এর DataBound হয় UserNameদৃশ্য মডেল সম্পত্তি। ডাব্লুপিএফ বাইন্ডিং চার ধরণের বাইন্ডিং অফার করে। মনে রাখবেন, বাইন্ডিং ইউআই থ্রেডে চালিত হয় যদি না আপনি অন্যথায় চালানোর জন্য নির্দিষ্ট করে থাকেন।

  1. ওয়ানওয়ে : লক্ষ্যযুক্ত সম্পত্তি উত্সের সম্পত্তিটি পরিবর্তিত হওয়ার কথা শুনবে এবং নিজেই আপডেট হবে। আপনি যদি প্রোগ্রামালি ভিউমোডেলের UserNameসম্পত্তি পরিবর্তন করেন তবে এটি পাঠ্য বাক্সে প্রতিফলিত হবে। এটি অন্তর্বর্তী ব্যয়ের কারণ বাঁধাই সিস্টেমটি কেবলমাত্র পরিবর্তনের জন্য উত্স দেখে
  2. টুওয়ে : লক্ষ্যযুক্ত সম্পত্তি উত্সের সম্পত্তিটি পরিবর্তিত হওয়ার কথা শুনবে এবং নিজেই আপডেট হবে। এবং উত্স সম্পত্তি লক্ষ্য সম্পত্তিটি পরিবর্তিত হচ্ছে শুনবে এবং নিজেই আপডেট হবে। সম্পত্তি TextPropertyএবং UserNameসম্পত্তি উভয়ই সিঙ্কে থাকবে এবং এক পরিবর্তিত হলে একে অপরকে আপডেট করবে। এটি সবচেয়ে ব্যয়বহুল কারণ পরিবর্তনের জন্য বাইন্ডিং সিস্টেমকে উভয় পক্ষকেই দেখতে হয়।
  3. ওয়ানওয়েটোসোর্স : টার্গেট সম্পত্তি পরিবর্তিত হলে উত্স সম্পত্তি পরিবর্তন হবে। ব্যবহারকারী যদি পরিবর্তন করে TextProperty, UserNameসম্পত্তি পরিবর্তিত মান গ্রহণ করবে। এটি আবার মধ্যবর্তী ব্যয়বহুল কারণ বন্ডিং সিস্টেমটি পরিবর্তনের জন্য কেবল লক্ষ্য লক্ষ্য করে
  4. ওয়ানটাইম : বাইন্ডিংয়ের জীবদ্দশায় এটি একবারে ঘটেছিল, যখন বাইন্ডিং ঘটে তখন টার্গেটের সম্পত্তি উত্সের সাথে আপডেট করা হবে। এই অন্তত ব্যয়বহুল এবং যেখানে আপনি স্ট্যাটিক তথ্য আছে যেমন দেখানো হবে তা পরিস্থিতিতে জন্য যুক্তিযুক্ত Label, TextBlockইত্যাদি

আপনি যদি কিছু উল্লেখ না করেন তবে প্রতিটি লক্ষ্য সংস্থার সাথে একটি ডিফল্ট বাঁধাই মোড যুক্ত থাকে। যেমন TextPropertyএকটি TextBoxএর ডিফল্ট বাঁধাই মোড রয়েছে TwoWay। জন্য TextPropertyএকটি এর TextBlockএটা এক উপায়।

আপনি সঠিক মোডটি বেছে নেওয়ার পরামর্শ দেওয়া হচ্ছে কারণ এটি অ্যাপ্লিকেশনটির বিলম্বিতা হ্রাস করতে আপনাকে সহায়তা করতে পারে বিশেষত যেখানে আপনার ইউআইতে আপনার বিশাল সংখ্যক নিয়ন্ত্রণ রয়েছে in

এমভিভিএম সম্পর্কে আরও জানতে এখানে আমার লেখা একটি নিবন্ধ রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.