我有许多利用 MVVM 的 WPF 可执行项目。视图模型实现 INotifyDataErrorInfo。当这些 WPF 应用程序以标准方式运行时,验证按预期工作 - 出现默认红色边框,并通过触发器使用错误详细信息更新工具提示。XAML:
<TextBox Text="{Binding TextBox1Message, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
这些 WPF 应用程序也是由 MAF 体系结构 ( https://msdn.microsoft.com/en-us/library/bb384200(v=vs.110).aspx )定义的加载项,并由主机应用程序使用。每个加载项都为主机提供一个内容控件,主机在其主窗口中显示该内容控件。WPF 应用程序继续正常工作,但它由另一个进程中的窗口托管。
奇怪的是,当托管应用程序时,验证边框不显示;但是,工具提示按预期工作。
当 WPF 应用程序在 MAF 环境中运行时,为什么验证边框无法按预期工作?