【发布时间】:2020-02-14 09:42:29
【问题描述】:
我在视图中有这样的代码
<TextBox
Text="{Binding MiejsceWykonaniaNadgodzin, UpdateSourceTrigger=PropertyChanged}"
Name="MiejsceWykonaniaNadgodzinText" Margin="50 50 50 50">
<Validation.ErrorTemplate>
<ControlTemplate>
<StackPanel>
<!-- Placeholder for the TextBox itself -->
<AdornedElementPlaceholder x:Name="textBox"/>
<TextBlock Text="{Binding [0].ErrorContent}" Foreground="Red"/>
</StackPanel>
</ControlTemplate>
</Validation.ErrorTemplate>
</TextBox>
以及模型中的此类代码
public string MiejsceWykonaniaNadgodzin
{
get { return miejsceWykonaniaNadgodzin; }
set
{
this.miejsceWykonaniaNadgodzin = "aaa";
OnPropertyChanged();
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged( string miejsceWykonaniaNadgodzin = null)
{
PropertyChanged?.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(miejsceWykonaniaNadgodzin));
}
我在我的文本框中写入了数字,例如2222,但那里没有显示错误。
【问题讨论】:
-
试试
OnPropertyChanged(nameof(MiejsceWykonaniaNadgodzin)); -
为什么会出现错误? MiejsceWykonaniaNadgodzin 是一个字符串,2222 是一个有效字符串。您还将支持变量设置为固定字符串而不是设置器中的值,因此 miejsceWykonaniaNadgodzin 将始终设置为“aaa”
-
你说得对,安迪,好观点。你能告诉我如何使用 OnPropertyChanged() 和双变量,之后我会看到验证错误吗?非常感谢你的帮助。