我是C# WPF和材料设计的新手。我使用材料设计创建了一个注册页面,它有一个字段在登录时填充用户名。我希望对该文本框进行简单的必要验证,并且当字段数据不为空时,文本中的helperText应显示,否则错误消息应显示在下面的字段中,但错误始终是它在字段下面显示错误消息,即使我键入了一些文本为此我写了一些代码,这是我的杂乱的xml代码。
<StackPanel Grid.Column="1"
Grid.Row="4"
Orientation="Horizontal"
HorizontalAlignment="Center">
<materialDesign:PackIcon Kind="Account"
Opacity="0.8"
Width="30"
Height="30"/>
<TextBox x:Name="UsernameTextBox"
materialDesign:HintAssist.HelperText="Enter User Name."
materialDesign:HintAssist.Hint="Username"
Width="200"
Margin="10 0 0 0">
<TextBox.Text>
<Binding Path="Username"
UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<Validation:NotEmptyValidationRule
ValidatesOnTargetUpdated="True"
xmlns:Validation="clr-namespace:LibraryManagementSystem.BusinessLogicLayer.Validation" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</StackPanel>
这是我的“NotEmptyValidationRule”后面的c#代码
private String userName;
public String Username
{
get { return userName; }
set { userName = value; }
}
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
return string.IsNullOrWhiteSpace((value ?? "").ToString())
? new ValidationResult(false, "User Name is Required.")
: ValidationResult.ValidResult;
}
下面是我在项目中的文件夹管理
这是我的设计。
这里是错误:
当我执行项目LoginView用户名字段总是出现错误消息,即使我输入一些文本。我该如何修复?
1条答案
按热度按时间vnjpjtjt1#
您必须实现/使用
INotifyPropertyChanged
。您的示例包含以下内容:因此您的视图不知道
Username
已经更改。