【问题标题】:Binding to DependencyProperty doesnt work绑定到 DependencyProperty 不起作用
【发布时间】:2012-04-15 17:12:55
【问题描述】:

我有 2 个视图(第一个视图 - 自定义用户控件,MainWindow 视图 - 第一个自定义控件作为子控件的主视图)。

第一个视图有 TreeView 和 DependencyProperty SelectedModel,当用户在 TreeView 中更改选择时,它们会发生变化。 主窗口视图还具有绑定到 MainWindowModel 的 SelectedModel 属性的标签。

标签不更新。

【问题讨论】:

  • 请使用编辑将您的代码添加到您的问题中

标签: wpf binding mvvm dependency-properties


【解决方案1】:

我认为通过设置FirstViewDataContext,它会破坏数据继承,因此您的FirstView 将无法访问主视图模型中定义的数据(即SelectedModel)。

尝试注释掉

public FirstView() 
{ 
    InitializeComponent(); 
    //this.DataContext = _viewModel;  
} 

看看它是否有效。

【讨论】:

  • 我注释“this.DataContext = _viewModel;”,删除 FirstViewModel 并将额外的 DependencyProperty VendorsSourceProperty 添加到 FirstView。我还设置了 。现在树视图不加载任何项目:(
  • VendorsSource 应该只是供应商的集合,并且应该在您的主视图模型中设置。它不需要是依赖属性。
  • 我将 ObservableCollection 供应商放置到 MainWindowViewModel 并将 MainWindowView 编辑到 。在 VendorView 我添加 DependencyProperty VendorsSourceProperty 并设置 。如何在没有 VendorsSourceProperty 的情况下将 VendorView 中的树视图绑定到 MainWindowViewModel 中的集合?
  • 如果我设置 它将加载项目,但是为什么子视图必须知道父视图的集合名称?
  • 我现在知道了... VendorsSourceProperty 的类型是什么?
猜你喜欢
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 2014-03-29
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
相关资源
最近更新 更多