绑定DataContext松散的DependencyProperty

时间:2018-11-07 08:53:17

标签: c# mvvm dependency-properties

我有一个主要的WPF窗口,该窗口将托管一堆UserControls。 我希望每个UC都有自己的逻辑,所以我添加了这样的VM:

UC构造函数

public IfcUpdaterViewModel IfcUpdaterViewModel;
public IfcUpdaterView()
{
    IfcUpdaterViewModel = new IfcUpdaterViewModel();
    DataContext = IfcUpdaterViewModel;
    InitializeComponent();
}

然后我添加了一个ICommand DP来将其绑定为这样的主要形式:

UC依赖性

public static readonly DependencyProperty UpdateCommandProperty =
    DependencyProperty.Register("UpdateCommand", typeof(ICommand), typeof(IfcUpdaterView), new UIPropertyMetadata());

/// <summary>
/// Dependency to bind the update command
/// </summary>
public ICommand UpdateCommand
{
    get => (ICommand) GetValue(UpdateCommandProperty);
    set => SetValue(UpdateCommandProperty, value);
}

使用此设置绑定:

MainForm

public void ToDocument()
{
    _ifcUpdater = new IfcUpdaterView();
    MainPresenter.Content = _ifcUpdater;

    _ifcUpdater.SetBinding(IfcUpdaterView.UpdateCommandProperty, new Binding(nameof(MainDataContext.UpdateIfcFile))
    {
        Mode = BindingMode.OneWay,
        UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
    });
}

但是,此命令绑定不起作用。但是,如果我删除DataContext,绑定工作正常,但是我松开了VM逻辑。 有没有办法将两者结合起来?

0 个答案:

没有答案