تمام سوالات سوالات بدون پاسخ سوال بپرسید

سلام،
من روی یک برنامه Silverlight/WPF کار میکنم. دو تا DependencyProperty دارم که میخوام وقتی یکی از اونها تغییر کرد اون یکی دیگه رو متناسب با اون تغییر بدم.
کسی میتونه راهنمایی کنه که چطور اینکار رو انجام بدم؟

با تشکر

1 پاسخ

برای این کار Triggerها بهترین گزینه هستند، اما اگر نیاز شما مرتفع نشد میتوانید از روشی که در زیر استفاده کنید.

هنگام تعریف یک DP شما میتوانید برای آن متا دیتا تعریف کنید، یکی از پارامترهایی که میتوانید بدهید یک تابع میباشد که هنگام تغییر مقدار DP شما را مطلع میسازد و شما در این Handler میتوانید هرکاری از جمله مقدار دهی به یک DP دیگر را انجام دهید.

    public static readonly DependencyProperty TextContentProperty =
        DependencyProperty.Register("TextContent", typeof(string), typeof(Window1)
        , new PropertyMetadata("", new PropertyChangedCallback(changed)));

    static void changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
            // ویرایش شده
            int value =(int) d.GetValue(secondProperty);                
            value = value * value;                
            d.SetValue(secondProperty, value);
     }

برای اطلاعات بیشتر از این لینک هم میتونید استفاده کنید

http://msdn.microsoft.com/en-us/library/ms557330.aspx

(19 آوریل '12, 03:05) amir

ممنون، ولی شما تنها تعریف DP رو گفتی؛ چطور میتونم DP دوم رو از طریق این متد تغییر بدم؟

(19 آوریل '12, 11:53) _Ant Eater_
1

به Handler مربوط به تغییر هر خصوصیت یک شی از نوع DependencyObject ارسال میشود، از طریق این شی میتوانید به Context مربوط به همان خصوصیت دسترسی پیدا کرده و سایر خصوصیات را تغییر دهید.

--- کد داخل Handler ویرایش شد ---

(19 آوریل '12, 14:10) amir
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها