Button Content dynamisch ändern

  • WPF

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMiy.

    Button Content dynamisch ändern

    Ich hab ein kleines Template (so heißt es glaube ich) für einen Button geschrieben. (Bild im Anhang)
    Der Styleteil des Codes ist sicherlich nicht wichtig für mein Problem, deshalb nur das Ende des Codes:

    XML-Quellcode

    1. </Style>
    2. </Grid.Resources>
    3. <Button Content="Test"></Button>
    4. </Grid>
    5. </UserControl>


    Aufruf des Buttons auf der Hauptseite:

    XML-Quellcode

    1. <my:Button HorizontalAlignment="Left" Margin="180,185,0,0" x:Name="Button1" VerticalAlignment="Top" Height="31" Width="129" />


    Möchte ich jetzt zur Laufzeit die Content-Eigenschaft ändern zeigt er mir nur die Schrift an (sogar nur in Schwarz), der Style wird also nicht wieder gesetzt.
    Ich glaube mitbekommen zu haben, dass man in WPF mit XAML und VB-Code zusammenarbeiten muss.
    Hat jemand da eine Quelle wo Datenbinding erklärt wird, sodass ich mit meinem Content-Problem eine Lösung finde ?
    Bilder
    • button.png

      8,02 kB, 157×55, 1.352 mal angesehen
    Stimmt, den hab ich ganz vergessen.
    Ich hab mal reingeschaut.
    Du hast oft solche Sachen

    XML-Quellcode

    1. </ControlTemplate>
    2. </Setter.Value>
    3. </Setter>
    4. </Style>
    5. </Grid.Resources>
    6. <Button Content="{Binding Path=Text}"></Button>
    7. </Grid>
    8. </UserControl>

    Wobei "Text" eine Property ist, also

    VB.NET-Quellcode

    1. Public Class Button
    2. Public Property Text As String
    3. End Class


    Wenn ich aber jetzt die Text-Eigenschaft setzte passiert gar nichts.
    ich denk, du mußt dich eingehender mit MVVM beschäftigen.
    Deine Klasse implementiert nicht INotifyPropertyChanged, und deine Property löst kein PropertyChanged-Event aus.
    vlt. musstedir auch noch Grundlagen aneignen, bezüglich Interfaces, "implementieren" versus "erben" und solche Sachen - sonst verstehste meine Erklärung garnet.

    Und ist wohl auch keine gute Idee, eine Klasse "Button" zu nennen, denn es gibt bereits eine Klasse dieses Namens.