如何从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
)
然后在视图必须知道关于ViewModel,这是否是反模式? – Benny 2010-05-20 15:15:21
我没有实现INotifyPropertyChanged – Benny 2010-05-20 15:21:24
嗯,视图总是知道ViewModel,因为它有一个对它的引用(DataContext)并且绑定了它的属性......如果ViewModel知道视图,那么*你会破坏模式 – 2010-05-20 15:26:39