WPF Mutidatatrigger لا تطلق النار
-
12-09-2019 - |
سؤال
أحاول استخدام المتعددات المتعددة لتمكين / تعطيل زر استنادا إلى قيمة مربعين نصي.
تذكر المستندات أن الظروف الموجودة في المتعددات المتعددة أنثوها منطقيا معا. في المثال أدناه إذا كان txtfirst.text هو foo و txtsecond.text هو شريط أود تمكين الزر. ومع ذلك، يبقى الزر دائما معطل (Isenabled = خطأ).
أنا متأكد من أنني أفتقد خدعة هنا، لكن البحث الشامل لشركة Google لم أحصل على أي مكان ....
<StackPanel>
<Button IsEnabled="False" Content="OK">
<Button.Style>
<Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=txtFirst, Path=Text}" Value="foo"/>
<Condition Binding="{Binding ElementName=txtSecond, Path=Text}" Value="bar"/>
</MultiDataTrigger.Conditions>
<Setter Property="Button.IsEnabled" Value="True"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<TextBox x:Name="txtFirst"/>
<TextBox x:Name="txtSecond"/>
</StackPanel>
المحلول
يؤدي تعيين خاصية مباشرة على الكائن نفسه إلى تجاوز أي إعدادات مدفوعة النمط. تغيير إعلان الزر الخاص بك إلى:
<Button Content="OK">
<Button.Style>
<Style>
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
الآن بعد أن تم تعيين خاصية Isenabled في النمط، فإن الزناد يمكن تغييره. لا تسألني لماذا. :)
لا تنتمي إلى StackOverflow