كيف يمكنني الإشارة في رأس المتوسع التي انهارت محتويات يكون خطأ

StackOverflow https://stackoverflow.com/questions/306074

  •  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 على مربعات النص والتعامل مع خطأ حدث المرفقة.

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