【发布时间】:2013-11-24 16:44:12
【问题描述】:
我在页面中有一个文本框,该文本框绑定到已验证的模型属性,并且当出现错误时,不会显示错误模板!
几点:
- 我自己的窗口中的控件没有验证问题(不是在窗口内的框架中显示的页面内)。
- 错误模板有效,它显示为窗口内的控件。
- 模型正在验证,因为页面中的“保存”按钮在发现验证错误时被禁用。
我“认为”问题在于控件位于框架内托管的页面内,因此数据上下文没有传递到页面,因为它看起来是孤立的。会是这样吗?如果是这样,我该如何解决这个问题?如果不是,还能是什么?
代码(我当然简化了代码以隔离问题):
<Page x:Class="PIRS_Client.View.Staff.StaffDetailsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ignore="http://www.ignore.com"
mc:Ignorable="d ignore"
DataContext="{Binding StaffDetailsVM, Source={StaticResource Locator}}"
Height="576" Width="1163">
<Grid>
<TextBox HorizontalAlignment="Left" Text="{Binding Model.title, ValidatesOnDataErrors=True}" Height="17" Margin="284,453,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="90"/>
<Button Content="Save Changes" Command="{Binding SaveDetailsCommand}" IsEnabled="{Binding Model.IsValid}" HorizontalAlignment="Left" Margin="1007,518,0,0" VerticalAlignment="Top" Width="104" Height="23"/>
</Grid>
如果我可以添加任何更多信息或代码,请告诉我!
【问题讨论】:
-
如果在文本框中输入无效数据并点击退出,是否有验证错误?
-
@gleng 是的,错误被记录(当我调试它时)并且按钮被禁用(显示存在验证错误)并且当我输入有效文本时按钮被重新启用
-
@gleng - 没问题,感谢您抽出宝贵时间帮助我解决这个问题!
标签: c# wpf errortemplate