Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich habe ein UserControl mit einem Label das an eine DependencyProperty in der CodeBehind Datei gebunden ist


<Label Content="{Binding Path=MyText}" Foreground="Black"/>
[/PHP]

[PHP]private static readonly DependencyProperty MyTextProperty =
DependencyProperty.Register("MyText", typeof(string), typeof(MyUserControl), new FrameworkPropertyMetadata(new PropertyChangedCallback(MyTextPropertyChanged)));

public string MyText
{
get
{
return (string)GetValue(MyTextProperty);
}
set
{
SetValue(MyTextProperty, value);
}
}



private static void MyTextPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
{
}

public MyUserControl()
{
DataContext = this;
InitializeComponent();
MyText = "Hallo";
}

Binde ich das UserControl jetzt in einer anderen XAML View ein ohne das ich MyText setzte gibt das ganz normal Hallo aus.

Binde ich aber MyText an einen Wert aus dem View Model gibt das plötzlich nichts mehr aus.

<Label Content="{Binding Path=MyOriginalText}"/>
<iv:MyUserControl MyText="{Binding Path=MyOriginalText}"/>[/PHP]

Das erste Label gibt aber den richtigen Text aus, es ist also kein Problem des Bindings in der View sondern muss irgendwo an dem UserControl bzw. dem DependencyProperty liegen.

Wenn ich einen Haltepunkt in die MyTextPropertyChanged Methode setzte dann hält der da zwei mal an. Beim ersten Mal mit dem alten Wert null und dem neuen Wert "Hallo" und beim zweiten Mal mit dem alten Wert "Hallo" und dem neuen Wert null:confused:

Irgendwelche Ideen warum das nicht klappt?

Geschrieben

Ok habs selber gelöst. Ein Blick ins Output Fenster hat mir gezeigt das er durch das

DataContext = this;

bereits hier:

<iv:MyUserControl MyText="{Binding Path=MyOriginalText}"/>  

MyOriginalText im UserControl selber gesucht hat und nicht mehr im DataContext der View die das einbindet.

Ich hab das jetzt entfernt und im Binding innerhalb des UserControls noch

RelativeSource={RelativeSource AncestorType={x:Type UserControl}}

mit angegeben.

Gefällt mir zwar nicht so gut aber die einzige Alternative die ich sehe wäre ein ViewModel für das UserControl zu erstellen was ich aber nicht möchte.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...