Привязка DataContext освобождает DependencyProperty - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть главное окно WPF, в котором будет размещена группа пользовательских контролов. Я хочу, чтобы у каждого UC была своя логика, поэтому я добавил виртуальную машину следующим образом:

Конструктор UC

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

И я добавил DP ICommand, чтобы связать его в основной форме следующим образом:

Зависимость 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, то привязка работает нормально, но я теряю логику виртуальной машины. Есть ли способ объединить оба?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...