سؤال

وأنا خلق عنصر تحكم مخصص.

وأريد قالب هذا التحكم لاستخدام ضوابط مختلفة لمراقبة الجذر على أساس قيمة الممتلكات التبعية دعا CanExpand. ويعرف CanExpand في فئة التحكم المخصصة.

إذا CanExpand غير صحيح، وأنا أريد لعرضه باستخدام المتوسع:

<ControlTemplate ...>
   <Expander ...>
      <!--...-->
      <ContentPresenter/>
   </Expander>
</ControlTemplate>

إذا CanExpand هو زائف، وأريد أن عرض باستخدام HeaderedContentControl بدلا من ذلك:

<ControlTemplate ...>
   <HeaderedContentControl ...>
      <!--...-->
      <ContentPresenter/>
   </HeaderedContentControl>
</ControlTemplate>

وفكرت في استخدام DataTemplateSelector، ولكن هذا هو ControlTemplate ليس DataTemplate وليس هناك خاصية محدد لقالب عنصر تحكم.

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

وأي اقتراحات؟

وشكرا.

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

المحلول

وداخل نمط الخاص بك، قم بتعيين الخاصية ControlTemplate عن الحالة الافتراضية ومن ثم يكون على الزناد التي تحدد الملكية ControlTemplate إلى قالب مختلف. على سبيل المثال:

<Style ...>
    <Setter Property="ControlTemplate">
        <ControlTemplate ...>    
        </ControlTemplate>
    </Setter>
    <Style.Triggers>
        <Trigger Property="YourProperty" Value="WhateverValue">
            <Setter Property="ControlTemplate">
                <ControlTemplate ...>
                </ControlTemplate>
            </Setter>
        </Trigger>
    </Style.Triggers>
</Style>

ونضع في اعتبارنا يمكنك الحصول على الزناد في نفس العقار لقيم متعددة، كل قيمة الحصول على قالب مختلف تماما.

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