У меня есть пользовательский элемент управления, который имеет свойствоWPF Reverse Binding OneWayToSource
public static readonly DependencyProperty PrintCommandProperty = DependencyProperty.Register(
"PrintCommand",
typeof(ICommand),
typeof(ExportPrintGridControl),
new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));
public ICommand PrintCommand
{
get { return (ICommand)GetValue(PrintCommandProperty); }
set { throw new Exception("ReadOnly Dependency Property. Use Mode=OneWayToSource"); }
}
следующую зависимость в конструкторе моего контроля я устанавливаю значение по умолчанию моей собственности:
public MyControl()
{
this.SetValue(PrintCommandProperty, new DelegateCommand<object>(this.Print));
}
Я затем пытается связать свойство с моей ViewModel, чтобы я мог получить доступ к свойству и вызвать команду печати.
<controls:MyControl PrintCommand="{Binding PrintCommand, Mode=OneWayToSource}"/>
Однако привязка в XAML приводит к тому, что значение свойства будет установлено равным нулю. Если я удалю привязку в XAML, значение свойства по умолчанию будет правильно установлено в конструкторе моего элемента управления.
Каков правильный способ заставить мою модель ViewModel вызвать метод печати моего элемента управления?