TextBox onchange 事件在 WPF 中使用占位符触发两次

TextBox onchange event is frining twice with placeholder in WPF

我使用下面的 link、

向文本框添加了一个占位符

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 内的文本框的 UpdateSourceTrigger,我将无法获得更改后的 属性 值。任何人都请告诉我如何使它仅使用占位符点击一次 OnChangeEvent。

尝试获取 属性 setter 中的值,这样 属性 就不会设置两次,从而导致 OnChangeEvent 触发两次。试试下面的方法

if (value == _token) return;

public string Token
{
    get => _token;
    set
    {
        if (value == _token)
        { 
            return;
        }
        _token = value;
        OnPropertyChanged();
    }
}