TextBox onchange事件在WPF中使用占位符进行了两次frining

时间:2018-03-20 13:45:23

标签: c# wpf mvvm caliburn.micro

我已使用以下链接

在文本框中添加了占位符

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中的T​​extbox的UpdateSourceTrigger,我无法获得更改的属性值。任何人都请告诉我如何才能使用占位符来点击OnChangeEvent。

1 个答案:

答案 0 :(得分:1)

尝试在属性设置器中获取值,因此该属性未设置两次,导致OnChangeEvent触发两次。尝试以下方式

if(value == _token)return;

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