如何从WPF中的代码触发绑定源更新?

问题描述:

在我的ViewModel类我有一个属性:如何从WPF中的代码触发绑定源更新?

class ViewModel : INotifyPropertyChanged 
{ 
public string FileName {get;set;} 
} 

,并在我的View我绑定一个标签的内容视图模型的FileName

now当我将文件拖放到我的视图时,如何更新标签的Content属性,以便ViewMode的FileName也可以通过绑定进行更新?

直接设置标签的Content属性将不起作用,它只是简单地清除绑定。

如果你有这样做的代码隐藏,你可以做这样的事情:

ViewModel vm = (ViewModel)this.DataContext; 
vm.FileName = path; 

(顺便说一句,你的ViewModel类需要实现INotifyPropertyChanged

+0

然后在视图必须知道关于ViewModel,这是否是反模式? – Benny 2010-05-20 15:15:21

+0

我没有实现INotifyPropertyChanged – Benny 2010-05-20 15:21:24

+0

嗯,视图总是知道ViewModel,因为它有一个对它的引用(DataContext)并且绑定了它的属性......如果ViewModel知道视图,那么*你会破坏模式 – 2010-05-20 15:26:39