Mise à jour en bas. Je pense que mon erreur est très simple, mais je ne sais pas quoi essayer d'autre.La liaison simple ne fonctionne pas/ne fonctionne pas C# wpf
J'ai View qui a un TextBlock.
<TextBlock x:Name="aCalories"
Text="{Binding Path= aCalories, UpdateSourceTrigger=PropertyChanged}"
Grid.Row="5"
Grid.Column="3" VerticalAlignment="Center"
Foreground="#2d3b53"
HorizontalAlignment="Center"/>
Après avoir fait quelques trucs, comme l'ajout de calories des différents articles « aColories » devrait mettre à jour après que les modifications ont été apportées. Mais "aColories" reste 0. Merci aux points d'arrêt, je vois que "_acalories" obtient des valeurs, mais il semble qu'ils ne sont pas transmis à ma vue.
aClories dans mon ViewModel:
namespace FoodsLib.ViewModel
{
public class ViewModelTagesBedarfWindow : ViewModelBase, INotifyPropertyChanged
{
public ViewModelTagesBedarfWindow(Repository repository, ModelPersone logedPers) : base(repository)
{
LoginPerson = logedPers;
}
private double _acalories;
public double aCalories
{
get
{
return _acalories;
}
set
{
if (_acalories != value)
{
_acalories = value;
OnPropertyChanged("aCalories");
}
}
// my OnPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
}
Et mes .xaml.cs
public ViewModelTagesBedarfWindow MyViewModel { get; set; }
//ViewModelFrdg _viewModel;
public TagesBedarfWindow(ModelPersone logedPerson)
{
InitializeComponent();
MyViewModel = new ViewModelTagesBedarfWindow(new Repository(), logedPerson);
this.DataContext = MyViewModel;
logedPers = logedPerson;
}
Je voudrais être en mesure d'obtenir des valeurs et que les valeurs changent automatiquement.
Par exemple: Un autre "TextBlock" Lie à cela et (semi) fonctionne.
Mais cela ne se met pas non plus à jour après une modification.
public double aSatFat
{
get
{
return LoginPerson.RDASatFat;
}
set
{
_asatFat = LoginPerson.RDASatFat;
OnPropertyChanged("aSatFat");
}
}
Il semble que ce soit aussi simple que je pensais. La liaison était correcte et mon DataContext a été réglé correctement, mais avec de nombreux modèles, j'ai confondu 2 "calories" différentes de deux modèles différents. Un nommé: "_acalories" l'autre "RDACalories".
Je comprends le downvote, parce que mon erreur est simple et personne ne bénéficie de la réponse.
Avez-vous des erreurs de liaison dans la fenêtre de sortie? – mariocatch
Avez-vous implémenté 'INotifyPropertyChanged' dans votre classe' ViewModel' – Jace
Aucune erreur de liaison pour ce problème, malheureusement. Modifier: Oui est implémenté. –