検証済みのモデル プロパティにバインドするテキスト ボックスがページ内にあり、エラーが発生した場合にエラー テンプレートが表示されません。
いくつかのポイント:
- 独自のウィンドウ内のコントロールの検証の問題はありません (ウィンドウ内のフレームに表示されるページ内ではありません)。
- エラー テンプレートは機能し、ウィンドウ内のコントロールに表示されます。
- 検証エラーが識別されると、ページ内の [保存] ボタンが無効になるため、モデルは検証中です。
問題は、コントロールがフレーム内でホストされているページ内にあり、データ コンテキストがページに渡されていないことにあると考えています。それは事実でしょうか?もしそうなら、どうすればこの問題を解決できますか? そうでない場合、他に何がありますか?
コード(もちろん、問題を切り分けるためにコードを単純化しました):
<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>
さらに情報やコードを追加できる場合は、お知らせください。