【问题标题】:How to trigger binding source update from code in WPF?如何从 WPF 中的代码触发绑定源更新?
【发布时间】:2010-05-20 14:51:30
【问题描述】:

在我的 ViewModel 类中,我有一个属性:

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

在我的 View 中,我将标签的内容绑定到 ViewModel 的 FileName

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

直接设置标签的Content属性是不行的,只是清除绑定而已。

【问题讨论】:

    标签: mvvm drag-and-drop binding


    【解决方案1】:

    如果您必须在代码隐藏中执行此操作,您可以执行以下操作:

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

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

    【讨论】:

    • 那么 View 必须知道 ViewModel,这是反模式吗?
    • 我确实实现了 INotifyPropertyChanged
    • 好吧,视图总是知道 ViewModel,因为它有对它的引用(DataContext)并绑定到它的属性...如果 ViewModel 知道视图,那么 你会打破这种模式
    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多