gpt4 book ai didi

c# - 不遵守 ZIndex 的自定义验证错误模板

转载 作者:行者123 更新时间:2023-11-30 22:27:03 28 4
gpt4 key购买 nike

<分区>

我有一个定义为 DataTemplate 的 View (对于“OrderEntryViewModel”),在 3 行网格内有一个 Menu、ContentPresenter 和 Expander。 ContentPresenter 的内容绑定(bind)到另一个 viewModel“OrderViewModel”(有另一个 DataTemplate 定义的 View )。扩展器的 ZIndex 为 99,因此当它向上扩展时,它会扩展到任何其他控件(即 ContentPresenter)之上。

除了当 ContentPresenter 的内容(OrderViewModel)有数据错误时,这一切都按预期工作......我的 OrderView 在包含无效数据的控件周围显示自定义验证错误模板。发生的情况是,当我展开扩展器时,ContentPresenter 中的所有控件都被覆盖了,但是我显示的红色边框和感叹号仍然通过扩展器可见!我已经验证我的扩展器的 ZIndex 是 99,ContentPresenter 的是 0。谁能帮我解决这个问题?

这里有一些图片可以帮助解释:

First Image显示未展开时 View 的样子。

Second Image显示展开时 View 的样子。

我这样定义验证错误模板:

<ControlTemplate x:Key="ValidationErrorTemplate">
<DockPanel LastChildFill="true">
<Border Background="Red" DockPanel.Dock="right" Margin="5,0,0,0" Width="10" Height="10" CornerRadius="5"
ToolTip="{Binding AdornedElement.(Validation.Errors).CurrentItem.ErrorContent, ElementName=customAdorner}">
<TextBlock Text="!" VerticalAlignment="center" HorizontalAlignment="center" FontWeight="Bold" Foreground="White"/>
</Border>
<AdornedElementPlaceholder x:Name="customAdorner" VerticalAlignment="Center">
<Border BorderBrush="red" BorderThickness="1" />
</AdornedElementPlaceholder>
</DockPanel>
</ControlTemplate>

然后像这样将它分配给一个特定的控件(这就是我为我的 TextBox 做的):

<Style TargetType="{x:Type TextBox}" x:Key="ValidatedStyleTextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding IsLocked}" Value="True">
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsLocked}" Value="False">
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource ValidationErrorTemplate}"/>
</DataTrigger>
</Style.Triggers>
</Style>

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com