IDataErrorInfoインターフェイスとスタイルを使用して、WPFでテキストボックスを検証する標準的な方法を採用しました。ただし、ページが無効になったときに[保存]ボタンを無効にするにはどうすればよいですか?これは何とかトリガーによって行われますか?検証が失敗した場合、WPFに保存ボタンを無効にする
Default Public ReadOnly Property Item(ByVal propertyName As String) As String Implements IDataErrorInfo.Item
Get
Dim valid As Boolean = True
If propertyName = "IncidentCategory" Then
valid = True
If Len(IncidentCategory) = 0 Then
valid = False
End If
If Not valid Then
Return "Incident category is required"
End If
End If
Return Nothing
End Get
End Property
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="23" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="True">
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder Name="MyAdorner" />
</Border>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
</Style>
は非常に多くのおかげで動作します。しかしもう一つのこと。偽その後Validation.GetHasError(MyTextBoxを)e.CanExecute = がすべてのコントロールではなく、個別の妥当性をチェックする方法がある場合、私は次のコード で個々のコントロールを確認することができますか? – Mitch
私はこれに関するいくつかのアイデアを含むように編集しました。 –
推奨コマンドの使用方法は+1です。コマンドはWPFが真に私をクリックするようにしたものです。 –