我使用下面的链接向文本框添加了一个占位符,
http://www.techken.in/coding/c-wpf-create-textbox-placeholder-using-xaml-code/
下面是我使用的文本框语法,
<TextBox Style="{StaticResource placeHolder}" Tag="Input text" Text="
{Binding Path=Token,Mode=OneWayToSource,
UpdateSourceTrigger=PropertyChanged}" cal:Message.Attach="[Event
TextChanged] = [Action OnChangeEvent()]" />
当保留 placeHolder 时,事件会触发两次。如果我删除位于 placeHolder xaml 中的 Textbox 的 UpdateSourceTrigger,我将无法获得更改后的属性值。任何人都请告诉我如何使它仅使用占位符点击一次 OnChangeEvent。
最佳答案
尝试获取属性 setter 中的值,这样属性就不会被设置两次,从而导致 OnChangeEvent 触发两次。试试下面的方法
如果(值==_token)返回;
public string Token
{
get => _token;
set
{
if (value == _token)
{
return;
}
_token = value;
OnPropertyChanged();
}
}
关于c# - TextBox onchange 事件在 WPF 中使用占位符触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49385937/