我有一个主要的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逻辑。 有没有办法将两者结合起来?