붕괴 된 내용에 오류가 있음을 Expander 헤더에서 어떻게 표시 할 수 있습니까?

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

  •  08-07-2019
  •  | 
  •  

문제

텍스트 상자가 포함 된 확장기가 있는데, 텍스트 상자는 WPF 검증 사항을 사용하여 주위에 빨간색 상자를 그리는 것입니다 (텍스트 상자는 팽창기가 무너질 때 빈 빨간 상자를 얻지 못하도록하기 위해 Adorner 데코레이터로 싸여 있습니다).

expander의 헤더에 오류가있는 내용 (붕괴 상태에있는 경우) - 아이콘 또는 빨간색 느낌표 등이 있음을 나타냅니다. 내 검증 함수 (이상적이지 않음)에서 코드 에서이 작업을 수행하는 방법이 보이지만 XAML에서 수행 할 수있는 방법이 있습니까? 어떻게 든 유효성 검사를 가리키는 트리거와 함께 Expander에 스타일을 사용할 수 있습니까?

어떤 생각에 감사합니다 ..

트레프

도움이 되었습니까?

해결책

Expander의 내용을 알고 있다면 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>

expander의 내용이 알려지지 않은 경우 텍스트 상자에서 NOTIFYONVALIDATIONERROR를 설정하고 첨부 된 이벤트를 처리해야 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top