붕괴 된 내용에 오류가 있음을 Expander 헤더에서 어떻게 표시 할 수 있습니까?
-
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를 설정하고 첨부 된 이벤트를 처리해야 할 것입니다.
제휴하지 않습니다 StackOverflow