PasswordBoxの検証中にAdornedElementPlaceholderにエラーメッセージを表示する方法はありますか? 、WPFでPasswordBoxを検証する
<ControlTemplate x:Key="DefaultErrorTemplate">
<StackPanel Orientation="Horizontal">
<AdornedElementPlaceholder x:Name="placeholder" />
<Border Background="Red"
ToolTip="{Binding ElementName=placeholder, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"
ToolTipService.InitialShowDelay="0"
VerticalAlignment="Top"
Margin="3"
Width="20"
Height="20"
CornerRadius="10">
<TextBlock Text="!"
Foreground="White"
FontWeight="Bold"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
</StackPanel>
</ControlTemplate>
とその検証
<Style TargetType="Control"
x:Key="ControlBaseStyle">
<Setter Property="Validation.ErrorTemplate"
Value="{StaticResource DefaultErrorTemplate}" />
を使用して、私のBaseControlStyleイムイム、それは私が(コンボボックス、DateTimePickerのを持っているほとんどすべてのコントロールと魔法のように働いている:
私はこのような何かを持っていますTextBox)しかし、私はpasswordBox
のために同じスタイルを使用したい場合、それは動作しません。
これはsimpe TextBoxでは機能していますが、PasswordBoxでは機能していないことがわかります。私はにフィードバックを与えることをpasswordBoxと同じことを達成するためにwan'tそれは、ユーザー名プロパティに
[Required(ErrorMessage = "Please enter username.")]
をエラーメッセージを示すのIそのAdornedElementPlaceholder
ツールチップにそれを表示するには、エラーメッセージを抽出する方法がわかりませんユーザーがパスワードを入力する際のエラー(制約)について
本当にありがとうございます。事前に
感謝:)
EDIT:
私は
[Required(ErrorMessage = "Please enter password.")]
[RegularExpression(@"^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).*$")]
[StringLength(maximumLength: 15, ErrorMessage = "Minimum 8 and maximum 15 characters.", MinimumLength = 8)]
public string Password
{
get { return GetValue<string>(); }
set { SetValue(value); }
}
とPasswordBoxAssistant
<PasswordBox behaviors:PasswordBoxAssistant.BindPassword="True"
behaviors:PasswordBoxAssistant.BoundPassword="{Binding Player.Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,ValidatesOnDataErrors=True}"
FontSize="{StaticResource defaultFontSize}"
Grid.Row="2"
Grid.Column="1"
Margin="10" />
となりましたと、そのプロパティにバインドされたパスワードのプロパティのためにこれを使用していますカスタムパスワードボックススタイルBasedOn ControlBaseStyle
<Style TargetType="{x:Type PasswordBox}"
BasedOn="{StaticResource ControlBaseStyle}">
私はTextBox
と同じことを行っているが、それはPasswordBox
で作業をdoesnt。
情報:そして、私はあなたがこの質問を締めくくった理由を知りたいと思います。これに答えがあったりガイドでさえあれば、私はそれを自分で閉じることができます。もしそうでなければ、投票をする前に答えを教えてください。ありがとう。
passwordboxの検証エラーをどのように設定しますか?それは私のためのカスタムテンプレートを示しています... – grek40
私はどのように私はパスワードにバインドされ、どのような私はPasswordBoxスタイルで行った質問を更新しました。 –
閉じる投票について:*デバッグのヘルプを求める質問(「なぜこのコードは動作していませんか?")には、目的の振る舞い、特定の問題またはエラー、および問題そのものを再現するのに必要な最短コードが含まれていなければなりません。検証可能な例*あなたの例は確かに完全ではありませんでした(そして依然としてそうではありません) – grek40