Ich habe ein benutzerdefiniertes Steuerelement, das die folgende Abhängigkeitseigenschaft hat
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"); }
}
im Konstruktor meines Steuerelements setze ich den Standardwert meiner Eigenschaft:
public MyControl()
{
this.SetValue(PrintCommandProperty, new DelegateCommand<object>(this.Print));
}
Ich versuche dann, die Eigenschaft an mein ViewModel zu binden, so dass ich auf die Eigenschaft zugreifen und den Druckbefehl aufrufen kann.
<controls:MyControl PrintCommand="{Binding PrintCommand, Mode=OneWayToSource}"/>
Die Bindung in der XAML bewirkt jedoch, dass der Eigenschaftswert auf Null gesetzt wird. Wenn ich die Bindung in XAML entfernen, wird der Standard-Eigenschaftswert richtig im Konstruktor meines Steuerelements festgelegt.
Was ist der richtige Weg, um mein ViewModel die Print-Methode meines Steuerelements aufzurufen?