PDA

View Full Version : سوال: دسترسی به اجزاء داخل Style در Code Behind



رافعی مهدی
چهارشنبه 23 شهریور 1390, 11:52 صبح
با سلام
یک UserControl با Styleای دارم که در اون چندین کنترل قرار گرفته. چطور میتونم از طریق کد #C به کنترلهایی که در این Style قرار داره دسترسی پیدا کنم؟

راهی که به نظر خودم میرسه اینه که پراپرتی های مورد نیاز از کنترلهایی که میخوام در #C به اونها دسترسی داشته باشم رو به پراپرتیهای متناظری از کلاس UserControl بایند کنم. اما آیا این بهترین راه هست؟

توضیحات بیشتر:
برای ایجاد Animation در این استایل نمیتونم از EventTrigger ها استفاده کنم چون برای شروع Animation نیاز به بررسی شرایط منطقی پیچیده تری از تساوی (با بهره گیری از یک Trigger ساده) یا & بین چند تساوی (با استفاده از MultiTrigger) دارم. بنابراین در یک Event لازم هست که به بعضی از کنترلها دسترسی داشته باشم تا Storyboard مورد نظرم رو که قبلا به یک Resource تبدیل شده به صورت کنترل شده اجرا کنم.

PetekDincos
چهارشنبه 23 شهریور 1390, 12:58 عصر
با سلام
لینک زیر می تونه بهت کمک کنه در مورد خواسته ات
http://stackoverflow.com/questions/636383/wpf-ways-to-find-controls
با تشکر

رافعی مهدی
چهارشنبه 23 شهریور 1390, 13:44 عصر
از پاسختون ممنونم
روشهایی که در اون لینک توضیح داده شده بودند، کارساز نشد. البته شاید لازم بود در سوالم قید میکردم که Style مذکور در برگیرنده ControlTemplate هست. (هرچند که فکر میکردم معلوم باشه!) به همین دلیل جستجو در VisualTree به هیچ پاسخی ختم نمیشد. با مقداری جستجوی بیشتر متوجه شدم که تکه کد زیر پاسخ سوالم بوده!

MyDesiredControl someControl = this.Template.FindName("controlName", this) as MyDesiredControl;
که در اون MyDesiredControl میتونه مثلاً یه Button باشه که در Template ازش استفاده شده و با attribute نام ("x:Name="controlName) مشخص شده.

امیدوارم به درد سایر دوستانی که مثل من در WPF مبتدی هستند بخوره. :)