gpt4 book ai didi

c# - 如何在 MVVM 中单击时清除文本框

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:41 25 4
gpt4 key购买 nike

我有一个文本框和一个按钮,我想在单击按钮时清除文本框的内容。我正在使用 MVVM Prism 。

我的XAML

  <TextBox  Grid.Row="0" Text="{Binding 
Path=TextProperty,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" Name="txtUserEntry2"/>

<Button Content="Select"
Command="{Binding Path=MyCommand}" />

在我的 View 模型

    public string TextProperty
{

get
{
return selectedText;
}
set
{

selectedText = value;

SetProperty(ref selectedText, value);
}
}

//////.........

private void MyCommandExecuted(object obj)
{
TextProperty= string.Empty;
MessageBox.Show("Command Executed");
}

但它不会清除文本框。我错过了什么?

最佳答案

这是因为在您的 setter 中,您设置了两次字段,一次没有触发 PropertyChanged ,另一次触发了 PropertyChanged ,在第二组 SetProperty 中,只有在以下情况下才会引发 PropertyChanged有一个新值,但您已经将该字段设置为某个值,因此通过 SetProperty 进行的设置将永远不会引发 PropertyChanged,因为您将其设置为相同的值。

所以在你的 setter 中你应该删除:

selectedText = value;

关于c# - 如何在 MVVM 中单击时清除文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29506530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com