Ich möchte eine schreibgeschützte Eigenschaft eines Steuerelements an mein Ansichtsmodell binden, damit der Wert im Ansichtsmodell verfügbar ist.Wie binden Sie eine schreibgeschützte WPF-Steuereigenschaft (z. B. ActualWidth), sodass der Wert im Ansichtsmodell verfügbar ist?
Was ist der beste Weg, dies zu tun?
Zum Beispiel möchte ich ActualWidth
an eine Eigenschaft in meinem Ansichtsmodell binden. Der Wert für die Breite wird von WPF mithilfe seiner Layout-Logik generiert, sodass ich diesen Wert nicht in meinem Ansichtsmodell generieren und wie gewöhnlich auf die Eigenschaft control übertragen kann. Stattdessen muss WPF den Wert generieren und an das Ansichtsmodell senden.
Ich würde nur Mode=OneWayToSource
verwenden, aber das funktioniert nicht für Nur-Lese-Eigenschaften:
<Border
...
ActualWidth="{Binding MyDataModelWidth, Mode=OneWayToSource}"
>
... child controls ...
</Border>
So wie ich es derzeit tue, ist SizeChanged
für die Grenze und die Handhabung Code-Behind-Stecker des Wert in das Ansichtsmodell, aber das fühlt sich nicht ganz richtig an.
Hat schon jemand dieses Problem gelöst?
UPDATE: Meine Frage ist tatsächlich ein Duplikat dieser: Pushing read-only GUI properties back into ViewModel
genial. beide fast zur gleichen Zeit, mit demselben Link. Haha! – Nawaz
Der zweite Link ist eine nette wiederverwendbare Lösung, deren Basis Sie verwenden (mit dem SizeChanged-Ereignis). – sowee15
Könnten Sie bitte den Kern des in die Antwort einfügen, sollte eine Antwort auf StackOverflow nicht nur Links enthalten ... –