كيف يمكنني الإشارة في رأس المتوسع التي انهارت محتويات يكون خطأ
-
08-07-2019 - |
سؤال
ولدي موسعات التي تحتوي على مربعات النص، مربعات النص استخدام الاشياء التحقق من صحة برنامج الأغذية العالمي لرسم مربع أحمر من حولهم (يتم التفاف مربعات النص في Adorner ديكور للتأكد من أنني لا تحصل على مربعات حمراء فارغة في كل مكان عندما تكون موسعات انهار)
وأريد أن الإشارة في رأس المتوسع أن لديها محتويات التي تحتوي على أخطاء (في حالة وجوده في الدولة المنهارة) - رمز أو علامة تعجب حمراء أو شيء من هذا. أعتقد أن أرى طريقة للقيام بذلك في التعليمات البرمجية من وجهة نظري وظيفة التحقق من صحة (ليست مثالية)، ولكن هناك طريقة للقيام بذلك في XAML؟ هل يمكنني استخدام نمط موسع مع مشغل تشير بطريقة أو بأخرى إلى Validation.HasError جميع الأطفال؟
وشكرا لأية أفكار ..
وإن Trev
المحلول
إذا كنت تعرف محتويات المتوسع الخاص بك، يمكنك استخدام MultiDataTrigger للقيام بذلك:
<Expander>
<Expander.Header>
<TextBlock>
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text" Value="ERROR"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=txtWidth, Path=(Validation.HasError)}" Value="False"/>
<Condition Binding="{Binding ElementName=txtHeight, Path=(Validation.HasError)}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Text" Value="NO ERROR"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Expander.Header>
<StackPanel>
<TextBox x:Name="txtWidth" Text="{Binding Width, ElementName=rect, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True}"/>
<TextBox x:Name="txtHeight" Text="{Binding Height, ElementName=rect, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True}"/>
<Rectangle x:Name="rect" Width="100" Height="100" Margin="10" Fill="Green"/>
</StackPanel>
</Expander>
إذا لم تعرف محتويات المتوسع، ثم عليك ربما لديك لتعيين Binding.NotifyOnValidationError على مربعات النص والتعامل مع خطأ حدث المرفقة.