Announcement

Collapse
No announcement yet.

DataBinding : INotifyPropertyChanged.PropertyChanged ist null

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataBinding : INotifyPropertyChanged.PropertyChanged ist null

    Hi,

    Ich möchte mal eben fragen, ob euch etwas einfällt, was ich hier falsch machen könnte. Obwohl ich das nicht zum ersten Mal verwende funktioniert es hier nicht.

    Aber von vorne: Ich implementiere das INotifyProperyChanged Interface, um Daten in der UI per Binding aktuell zu halten.
    Weiterhin habe ich eine Fullproperty gesetzt, die an die Text-Eigenschaft eines TextBlock gebunden ist.

    Das ganz sieht grob so aus:
    Code:
    public partial class MainWindow : Window, INotifyPropertyChanged
    {
    
        public event PropertyChangedEventHandler PropertyChanged;
    
        private string _cashResult;
        public string CashResult {
            get { return _cashResult; }
            set {
                _cashResult = value;
    
                if (PropertyChanged != null)
                    PropertyChanged( this, new PropertyChangedEventArgs("CashResult") );
            }
        }
    
    
        public MainWindow()
        {
            InitializeComponent();
            this.CashResult = "0.0";
        }
    
        // some more code
    }
    Der TextBlock ist wie gewohnt gebunden:
    Code:
    <TextBlock Text="{Binding Path=CashResult}"/>
    Im TextBlock ändert sich aber nichts. Ich habe das komplett gleiche Prinzip im selben Projekt in einem anderen Window-Objekt auch implementiert und dort funktioniert es.
    Grundsätzlich scheint er auch auf Änderungen reagieren zu wollen, aber der Debugger sagt mir immer, dass PropertyChanged null ist?!

    Ich habe auch schon das ganze aus dem anderen Window-Objekt rauskopiert und an der Stelle eingetragen, aber PropertyChanged ist hier immer null und ich habe keine Ahnung warum?!

    Habt ihr ne Idee?
    Danke
    Zuletzt editiert von Arne Drews; 18.05.2019, 15:41.
    PHP rocks!
    Eine Initiative der PHP Community

  • #2
    Sorry, der DataContext hat nicht gestimmt.
    Code:
    this.txtCashResult.DataContext = this;
    hat geholfen.

    PHP rocks!
    Eine Initiative der PHP Community

    Comment

    Working...
    X