【问题标题】:WPF C# Textbox text change update in ViewModelViewModel 中的 WPF C# 文本框文本更改更新
【发布时间】:2014-02-12 14:14:54
【问题描述】:

您好,我正在做一个简单的 MVVM 项目;一个简单的文本/配置编辑器,它加载配置文件,然后检查 ViewModel 以防文件已更改,它只需绑定一个布尔属性即可启用“保存”菜单项。但是这里出现了一个问题,我在文本框控件中找不到任何可以绑定到 vm 属性的属性,以防文本发生更改。我设法通过在代码隐藏中创建一个事件来以某种方式模拟这一点:

(DataContext as AnalizeSectionViewModel).ContentChanged = true;

任何文本更改都会触发该事件。但我想从文本框中绑定一个属性,例如:

IsModified="{Binding ContentChanged}"

这样的事情能做到吗?

【问题讨论】:

  • 您能提供更多信息吗?我无法弄清楚您要做什么。也许您还可以提供更多代码。例如,如果您向我们展示了您的 ContentChanged 属性,它将排除一些事情,以及与此“TextBox”相关的更多 XAML
  • 当文本中发生更改到 VM 布尔值时,我正在尝试绑定文本框的属性。我无法为您提供代码,因为没有太多可显示的内容。

标签: c# wpf mvvm textbox


【解决方案1】:

您应该能够通过绑定将 Text 文本框属性绑定到您的模型

Text="{Binding MyViewModelProperty}"

只要文本框中的文本发生更改,模型中的属性就会发生更改,这将允许您在发生这种情况时执行“操作”。当用户移出该字段时,这将触发属性更改事件。

现在,如果意图是在每次用户键入时触发它,那么您可以明确添加

UpdateSourceTrigger="PropertyChanged"

通过将其设置为 PropertyChanged,您将在每次文本更改时收到通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多