ورود

View Full Version : حرفه ای: اضافه کردن امکان Binding به یک کنترل



mze666
جمعه 22 دی 1391, 19:11 عصر
سلام. من یک کنترل برای گرفتن تاریخ از کاربر درست کردم ولی برای پیاده سازی امکان Binding توی اون به مشکل خوردم. این UserControl از 3 تا TextBox تشکیل شده (روز/ماه/سال) و تاریخ رو به فارسی نشون میده و پروپرتی SelectedDate اش تاریخ میلادی رو برای ذخیره کردن فیلد برمی گردونه.
اگر کسی میتونه توی انجام این کار راهنماییم کنه ممنون میشم.
یک پروژه تستی که توش از همین کنترل استفاده شده هم ضمیمه کردم.

خواهشاً کنترل های فارسی موجود مثل FarsiLibrary و کنترل DatePicker آقای نصیری و ... رو پیشنهاد ندید چون نیاز به همین نوع کنترل دارم. ممنون

Amir Oveisi
جمعه 22 دی 1391, 23:05 عصر
تو پروژه ای که قرار دادید هیچ تلاشی برای binding انجام ندادید!
دقیقا بفرمایید که در چه مرحله ای از binding مشکل دارید. چی رو به چی میخواید bind کنید تو کنترلتون؟

mze666
شنبه 23 دی 1391, 09:20 صبح
میخوام پروپرتی SelectedDate (که از نوع DateTime هستش) امکان Binding داشته باشه. ممنون.

mze666
شنبه 23 دی 1391, 19:29 عصر
از دوستان کسی نیست که بتونه این مشکل رو حل کنه؟ حداقل یه راهنمایی.

homan1374
شنبه 23 دی 1391, 20:35 عصر
شما باید از Dependency property استفاده کنید

mze666
شنبه 23 دی 1391, 20:44 عصر
دوست عزیز این رو هر کسی میدونه که برای Binding در WPF باید از Dependency Property استفاده کرد. ولی من نحوه استفاده ازش توی این کنترل رو نمی دونم!

sia_2007
شنبه 23 دی 1391, 23:12 عصر
یک Dependency Property تعریف می کنی
سپس یک Property برای User Control ات تعریف می کنی
سپس Text اون 3 تا Text Box رو به Property ای که برای User Control ات گذاشتی Bind می کنی
تا این جاش رو می تونی از این کد الگو بگیری که برات گذاشتم، مثال من یه Text Box درون یک User Control هستش ، که وقتی متنش عوض می شه، Animation ای روش اجرا می شه، برای این که بتونید هنگام استفاده از اون بهش متن لازم رو بدید، من واسه User Control یه Property از نوع Dependency گذاشتم، که به Text اون Text Box داخلیه Bind شده
من نمی دونم این روش درسته یا نه، چون من همون قدر که روی MVVM و خود #C قوی ام، روی Xaml حرف خاصی برای گفتن ندارم و نظر آقای اویسی رو دوست دارم در این زمینه بدونم
سپس Value Converter احتیاج داری تا مثلا Text Box اولیه از مقدار Bind شده، 2 تا کارکتر اول رو بخونه، این که کدوم Text Box تو این مرحله داره می خونه رو هم می تونی Converter Parameter بهش پاس بدی
خیلی ساده هستش، اگه اشتباه نباشه

mze666
سه شنبه 26 دی 1391, 11:39 صبح
با تشکر از راهنمایی های آقای مهدی فرزاد. من یه سری تغییر دادم توی پروژه اگر لطف کنید و بگید مشکل این کنترل کجاست ممنون میشم.