سؤال

وأنا أعمل على عنصر تحكم قالب سيلفرلايت (أي أنها تستمد من مراقبة ونظرة تنفيذها باعتبارها ControlTemplate في generic.xaml)، وجاءت عبر الحاجة إلى ValueConverter في واحدة من الارتباطات بلدي. عادة كنت مجرد إنشاء مثيل من ValueConverter في الموارد لمراقبة العمل مع لكنني لا يمكن معرفة كيفية القيام بذلك مع ControlTemplate. أود أن الحفاظ على هذا التنفيذ كل في XAML إذا أمكن، ولكن أعتقد أنني يمكن تجاوز OnApplyTemplate يدويا وإنشاء الربط مع محول.

هل كانت مفيدة؟

المحلول

وهذا يعمل في Silverlight 3. تحتاج فقط لإضافة قسم الموارد داخل قالب التحكم الخاصة بك، وإضافة ValueConverter إلى الموارد القالب:

<ControlTemplate TargetType="controls:MyControl">
    <Grid Margin="8,40,8,20" x:Name="peopleListContainer">        
        <Grid.Resources>
            <controls:MyValueConverter x:Key="converter" />
        </Grid.Resources>
        <!-- ....

ومع ذلك، غالبا ما يساء استخدامها ValueConverters في قوالب التحكم. قد تحتاج إلى استخدام TypeConverter بدلا من ذلك. براينت تلقيت كتب مقالة جيدة مناقشة لل الفرق بين ValueConverter وTypeConverter في هذا السيناريو .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top