清除文本框

巴特平诺克

我正在制作一个输入页面,我正在尝试实现一个重置按钮。单击按钮后,UI 应再次为空。

我认为输入一个空字符串可以解决这个问题。在代码中,它似乎可以工作,并且值确实更改为 "",但在 UI 中,键入的文本保持可见(因此它不显示空的 "" 字符串)。我也按照此处的建议尝试使用 string.Empty ,但这似乎也不起作用。

我在这里错过了什么吗?我对编程有点陌生,所以如果我做错了什么,请不要笑得太厉害;)

我正在使用 MVVM 模式和 Fody Weaver 来处理代码的属性更改部分。

用户界面/XAML

<TextBlock Text="Naam:"
           Grid.Column="0"
           Style="{StaticResource InputInputBlock}"
           />

<TextBox Foreground="White"
         Grid.Column="1"
         Text="{Binding Name, Mode=TwoWay}"
         Style="{StaticResource InputInputBox}"
         />

<Button Content="Reset"
            Height="50"
            Width="150"
            Grid.Column="0"
            Grid.Row="2"
            VerticalAlignment="Top"
            HorizontalAlignment="Center"
            Style="{StaticResource FlatButton}"
            Command="{Binding ResetCommand}"
            />

视图模型

private string _name;
public string Name
        {
            get => _name;
            set
            {
                _name = value;
            }
        }
public AddStakeholderViewModel()
        {
            ResetCommand = new RelayCommand(() => ResetForm());
        }

private void ResetForm()
        {
            Name = " ";
        }
斯拉文·托伊奇

您可以INotifyPropertyChanged在类中实现该接口。这对我有用:

public class Person : INotifyPropertyChanged
    {
        private string _name;
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                // Call OnPropertyChanged whenever the property is updated
                OnPropertyChanged("Name");
            }
        }

        // Declare the event
        public event PropertyChangedEventHandler PropertyChanged;

        // Create the OnPropertyChanged method to raise the event
        protected void OnPropertyChanged(string name)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
    }

XAML:

<TextBox Foreground="White"
     Grid.Column="1"
     Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
     Style="{StaticResource InputInputBox}"
     />

主窗口:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = newPerson;
    }
    Person newPerson = new Person();
    private void button_Click(object sender, RoutedEventArgs e)
    {
        newPerson.Name = "";
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击清除文本框

来自分类Dev

清除文本框值

来自分类Dev

如何清除HTML中的文本框

来自分类Dev

提交清除文本框后

来自分类Dev

单选按钮清除文本框

来自分类Dev

清除“特定文本框” ASPX页面

来自分类Dev

由于更新面板,文本框被清除

来自分类Dev

仅清除文本框类型的输入

来自分类Dev

清除窗口上的文本框控件

来自分类Dev

清除 tkinter 中的文本框

来自分类Dev

清除在文本框部分输入的组合框文本

来自分类Dev

清除模型后为何无法清除文本框

来自分类Dev

出现msg框后清除VBA Excel文本框

来自分类Dev

单击时在文本框中输入Coffeescript清除文本

来自分类Dev

单击时,Coffeescript会在文本框中清除文本

来自分类Dev

清除文本框asp.net的文本值?

来自分类Dev

单击按钮从表单上的多个文本框中清除文本框

来自分类Dev

清除Windows窗体中除特殊文本框外的所有文本框

来自分类Dev

如何清除MVVM中的单击文本框

来自分类Dev

如何清除点击按钮上的文本框

来自分类Dev

在事件上使用通用的清除文本框方法

来自分类Dev

清除表单单击按钮上的文本框

来自分类Dev

如何清除以前绘制的Matplotlib文本框?

来自分类Dev

每个文本框(如IE(Javascript))的清除按钮

来自分类Dev

清除所有文本框,但忽略DomainUpDown

来自分类Dev

使用C#中的按钮清除多个文本框

来自分类Dev

选择jquery typeahead.js后清除文本框

来自分类Dev

使用jQuery从文本框中清除旧值

来自分类Dev

清除输入文本框中的图标的角度方式