This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

CoerceValueCallback مفوَّض

Visual Studio 2010

Provides a قالب for a أسلوب that هو called whenever a تبعية قيمة الخاصية هو being re-evaluated, أو coercion هو specifically requested.

مساحة الاسم:  System.Windows
التجميع:  WindowsBase (في WindowsBase.dll)

public delegate Object CoerceValueCallback(
	DependencyObject d,
	Object baseValue
)

المعلمات

d
النوع: System.Windows.DependencyObject
The كائن that the خاصية موجود تشغيل. When the callback هو invoked, the خاصية النظام will pass this القيمة.
baseValue
النوع: System.Object
The جديد القيمة of the خاصية, prior إلى أي coercion attempt.

القيمة المُرجعة

النوع: System.Object
The coerced القيمة (مع appropriate نوع).

Callbacks based تشغيل CoerceValueCallback can be تعيين إلى a تبعية خاصية through several different techniques. Each of these techniques يتطلب that you أول إنشاء a جديد خاصية بيانات التعريف كائن (PropertyMetadata, أو a الفئة المشتقة such كـ FrameworkPropertyMetadata). إنشاء كائن بيانات التعريف باستخدام توقيع الدالة الإنشائية الذي تستغرقه coerceValueCallbackالمعلمة، و قم بتعيين هذه المعلمة إلى hوler رد الاتصال الخاص بك. أو إنشاء بيانات التعريف بأي توقيع و تعيين CoerceValueCallbackخاصية السابقة إلى وضع بيانات التعريف في استخدم.

إذا كان لديك بيانات التعريف هذه، يمكنك:

  • تعريف خاصية تبعية جديدة تشغيل جديد فئة، استخدام أي توقيع من Register، تقديم بيانات التعريف typeMetadataالقيمة.

  • تتجاوز بيانات التعريف (استدعاء OverrideMetadata(Type, PropertyMetadata)) لتبعية خاصية موجودة، عندما كنت ينحدر من فئة التي تملك خاصية تبعية.

  • إضافة خاصية تبعية موجودة إلى DependencyObjectفئة، باستخدام بيانات التعريف الجديد، بواسطة استدعاء جديد AddOwner(Type, PropertyMetadata).

تطبيقات th هو رد الاتصال يجب فحص من القيمة في baseValueوتحديد استناداً إلى القيمة أو النوع ما إذا كان ترتيب هو هو قيمة التي يحتاج إليها لفرض وضع يكون أكثر من ذلك الكائن.

CoerceValueCallback خاصية تبعية هو استدعاء أي وقت استدعاء النظام خاصية أو الطالب الأخرى CoerceValueتشغيل DependencyObjectالمثيل، تحدد معرّف هذه الخاصية dp.

التغييرات إلى خاصية القيمة قد الحصول على عينتين من أي مشارك المحتملة في خصائص النظام. وهذا يتضمن أنماط، invalidation العام، ومشغلات، وتوريث قيمة خاصية، و إعداد القيمة المحلية.

بشكل عام يجب تجنب تعيين المزيد واحد CoerceValueCallbackلأي تحديد خاصية تبعية (تجاوز أو إضافتها باستخدام بيانات التعريف الجديد لخاصية تبعية مسبقاً CoerceValueCallback). فقط لن يتمكن أحد عمليات الاستدعاء من إلى العمل. سيكون أحد تلك w رد الاتصال الحركة كـ المطبق على clكـs الأكثر المشتقة في التوريث كـ مقارنة إلى DependencyObjectالمتصل. رد الاتصال الأخرى كما تم تعيينه لملفات التعريف الخاصة بالخاصية التبعية كما الأعلى في هيكلي لمالك exهوted استبدال متى بيانات التعريف هو تجاوزها.

يلي مثال يتضمن تطبيق لهذا الاستدعاء فرض القيمة مخزن خاصية تبعية استناداً إلى الإدخالات الأخرى، مثل القيمة خاصية غير ذلك. في هذه الحالة، يقوم رد الاتصال لمعرفة ما إذا كان ShirtTypeخاصية يتطابق مع نوع من shirt الذي يحتوي على الأزرار؛ وإذا كان الأمر كذلك تأسيس البدء الافتراضية اللون ButtonColor، إذا كان نوع shirt لا توجد الأزرار، تحويل ButtonColorالقيمة مرة أخرى إلى البدء قيمة الأسباب التي واجهة المستخدم(not shown) لإزالة تلك القائمة المنسدلة من الخيارات الفعالة.


		private static object CoerceButtonColor(DependencyObject d, object value)
		{
			ShirtTypes newShirtType = (d as Shirt).ShirtType;
			if (newShirtType == ShirtTypes.Dress || newShirtType == ShirtTypes.Bowling)
			{
				return ButtonColors.Black;				
			}
			return ButtonColors.None;
		}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0

NET Framework. Client Profile

مدعوم في: 4
إظهار: