Custom_View.xaml
<UserControl>
<local:Custom_Text_Field
Custom_Text_Field_Color="{x:Bind ViewModel.Color1 , Mode=TwoWay}">
</local:Custom_Text_Field>
<local:Custom_Text_Field
Custom_Text_Field_Color="{x:Bind ViewModel.Color2 , Mode=TwoWay}">
</local:Custom_Text_Field>
<Button Click="{x:Bind ViewModel.ChangeColor"/>
</UserControl>
Custom_View.cs
public sealed partial class Custom_View : UserControl
{
public Custom_View_VM ViewModel { get; set; }
public Custom_View()
{
ViewModel = new Custom_View_VM();
this.InitializeComponent();
}
}
Custom_View_VM.cs
public class Custom_View_VM : NotificationBase
{
public Brush Color1 { get; set; }
public Brush Color2 { get; set; }
public void ChangeColor{//change color1 or color2};
}
verwenden ich die NotificationBase Klasse aus diesem Beispiel: https://blogs.msdn.microsoft.com/johnshews_blog/2015/09/09/a-minimal-mvvm-uwp-app/Datenbindung Ausgabe mit NotificationBase
Wenn ich Werte für Color1 oder Farbe2 im constructeur beeinflussen, es funktioniert (die Ansicht ändern), aber nach einem Aufruf ChangeColor, Werte im View-Modell werden geändert, haben sich jedoch nicht auf die Ansicht ausgewirkt.
Normalerweise würden Sie DependencyProperties in Code-Behind anstelle von ViewModel erstellen. Der Consumer Ihres Steuerelements kann die Abhängigkeitseigenschaften Ihres Steuerelements an sein ViewModel binden. – markmnl
Danke für Ihre Antwort, ich habe DependencyProperties im Code Custom_Text_Field erstellt, ich habe ein ViewModel für meine Custom_View erstellt, weil die Benutzeroberfläche komplizierter ist als mein Beispiel und er mit Daten von einem Webdienst verknüpft ist: ( – sasukaru
) Es gibt 2 verschiedene Arten von Bindung hier: Bindung an den Code hinter (mit Dependancy-Eigenschaft) und Bindung an das ViewModel (mit INotifyPropertyChanged) - es ist nicht klar, was nicht funktioniert: der Rand (mit der DP) oder die Textfelder (gebunden an die VM)? –