您好我正在开发一个简单的MVVM项目;一个简单的文本/配置编辑器,它加载一个配置文件,然后在文件被更改的情况下检查ViewModel,它只是通过绑定一个布尔属性来启用Save菜单项。但是这里出现了一个问题,我在文本框控件中找不到任何可以绑定到vm属性的属性,以防文本中发生更改。我已经设法以某种方式通过在代码隐藏中创建一个事件来模拟这个:
(DataContext as AnalizeSectionViewModel).ContentChanged = true;
任何文本更改都会触发该事件。但我想从文本框绑定一个属性,如:
IsModified="{Binding ContentChanged}"
可以这样做吗?
答案 0 :(得分:4)
您应该能够通过绑定
将Text文本框属性绑定到模型Text="{Binding MyViewModelProperty}"
只要文本框中的文字改变了你的模型中的属性,就会发生变化,这会让你在发生这种情况时做“填充”。当用户移出场外时,这将触发属性更改事件。
现在,如果每次用户输入时都要触发它,那么你可以明确地使用
UpdateSourceTrigger="PropertyChanged"
通过将其设置为PropertyChanged,您将在每次文本更改时收到通知。