0
나는 스타일을 확장하고 validationresult가 true이면 툴팁 메시지를 추가하기 위해 다음과 같은 방법을 시도했습니다. 하지만 "속성 스타일이 두 번 이상 설정되었습니다."라는 오류가 표시됩니다. 이 경우 스타일을 확장하려면 어떻게해야합니까? 어떤 도움을 주시면 감사하겠습니다. 감사.wpf로 스타일 확장하기
<TextBox Width="500" Style="{StaticResource HasInvalidValue}">
<TextBox.Text>
<Binding Path="Text" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<Validator:PathFormatValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource HasInvalidValue}">
<Style>
<Setter Property="ToolTip" Value="Enter Text."/>
</Style>
</TextBox.Style>
</TextBox>
그리고 스타일은 다음과 같이 정의된다 :
<Style x:Key="HasInvalidValue" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="White"/>
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
'스타일'을 두 번 설정하고 '정적 리소스'에 바인딩 한 다음 수동으로 조금 더 아래로 설정합니다. 또한, 두 번째 스타일 지정에서 'Tooltip.Value'를 하드 코딩 된 값으로 덮어 씁니다.이 값은 의미가 없습니다. –
요소 자체에서 스타일 지정을 제거합니다 (Style = "{StaticResource HasInvalidValue}"). BasedOn 스타일로 파생 된 스타일이 자동으로 적용됩니다. – Viv
바인딩을 제거하고 적용했습니다. 나는 textbox.style 대신에 basedon을 스타일로 바 꾸었습니다. 그것은 효과가 있었다. 감사 :) –