【问题标题】:How to clear all the controls at one time in WPF from ViewModel?如何从 ViewModel 一次清除 WPF 中的所有控件?
【发布时间】:2022-01-20 21:13:10
【问题描述】:

如果有任何方法可以一次清除 WPF 中的所有控件,请指导我。

问题:我有一个包含 textboxesDatagrids 等的窗口。所以在我的工作完成后,我需要清除所有控件.试想一下,完成后的注册表单我需要一份新副本以进行下一次注册。 那么如何从 ViewModel 中做到这一点..?

现在我正在一个一个方法中清除一个控件。 但我想知道是否有任何有效的方法来做到这一点。

【问题讨论】:

  • 将它们全部绑定到一个视图模型的属性。新建另一个实例并将 datacontext 设置为该实例。
  • 好的,但是如何销毁旧实例。让垃圾收集器处理什么
  • 从太空中核弹它。这是唯一确定的方法。或者。如果您没有硬引用来保持 gc 一直存在,您可以只依靠 gc。
  • 好的,让我试试..谢谢你的建议。

标签: c# wpf mvvm data-binding


【解决方案1】:

如果您将ICommandBinding 一起使用,您可以将所有属性设置为默认值:

ViewModel:

public string Text { get => _text; set => SetProperty(_ref _text, value); } //binding to control in UI

public int SmthIntProperty { get => _smthInt; set => SetProperty(_ref _smthInt, value); } //binding to control in UI

public Command ExampleCommand
{
   get => new Command((_) => 
   {
      //smth code

      Text = string.Empty;
      SmthIntProperty = 0;
   })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 2012-01-09
    • 2011-02-07
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多