سؤال

وأنا أحاول تغيير انقر على ممتلكات باتون / الحدث عندما يتم تشغيل DataTrigger لكنني لست متأكدا مما إذا كان هذا هو أفضل طريقة للقيام بذلك. في الواقع، فإنه لن حتى جمع:)

وما قلته يبدو مثل هذا:

<Style TargetType="{x:Type Button}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Replaceable}" Value="False">
            <Setter Property="Content" Value="Add" />
            <Setter Property="Button.Click" Value="AddObject_Click" />
        </DataTrigger>
        <DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Replaceable}" Value="True">
            <Setter Property="Content" Value="Replace" />
            <Setter Property="Button.Click" Value="ReplaceObject_Click" />
        </DataTrigger>
    </Style.Triggers>            
</Style>

واستكتاب يعطيني رسالة خطأ تقول "لا يمكن العثور على خاصية نمط 'اضغط' على نوع 'System.Windows.Controls.Button"

وأي اقتراحات؟ إذا كان هذا غير ممكن، ما هي البدائل المتوفرة؟

وشكرا!

وتحرير:

وظننت أنني وجدت الحل الذي كان لاستخدام EventSetter، ولكن غير معتمدة EventSetters داخل النوابض. ما اعتقد ان عملت و:

<EventSetter Event="Button.Click" Handlder="AddObject_Click" />

ولكن كما قلت، هذا ويدعم على الإطلاق.

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

المحلول

واضغط ليست خاصية، فإنه من حدث. أزرار تحتوي على خاصية IsPressed أن يصبح صحيحا عندما يتم الضغط على الزر. هل يمكن أن حاول استخدام ذلك.

نصائح أخرى

ولن يكون أسهل أن يكون مجرد حدث واحد بنقرة وفي هذا الحدث، وبيان إذا استنادا DataTrigger بك؟

وبدلا من استخدام الحدث Click، حاول استخدام خاصية القيادة الزر. يجب أن تكون قادرا على التبديل التي تحظى يشير إلى بناء على الزناد.

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