J'essaie d'obtenir la mise à jour de la somme dans le bloc de texte, mais je ne peux que la mettre à jour en redémarrant l'émulateur de Windows Phone. Pourquoi est-ce vrai?La liaison de données à textblock ne se met pas à jour
code dans DisplayBill.xaml
<TextBlock x:Name="lbTotalAmt" Text="{Binding Path=Sum, Mode=TwoWay, UpdateSourceTrigger=Explicit}" Margin="0,364,0,10" Grid.Row="1" />
code dans ViewModel.cs
private string _Sum;
public string Sum
{
get {return _Sum;}
set
{
_Sum = value;
NotifyPropertyChanged("Sum");
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
// Used to notify Silverlight that a property has changed.
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
if (propertyName == "ToDoBills")
UpdateSumValue();
}
private void UpdateSumValue()
{
Sum = ToDoBills.Sum(i => i.Amount).ToString();
}
#endregion
Mise à jour
Ce que je suis en train de faire est de mettre à jour le textblock chaque fois que le listbox ajoute une article. donc chaque fois qu'un nouvel élément est ajouté dans la listbox, le bloc de texte qui affiche le montant total sera mis à jour. Donc, ma question est comment puis-je mettre à jour mon bloc de texte chaque fois qu'un nouvel élément est ajouté dans la liste? Quelqu'un peut-il m'aider s'il-vous-plaît? J'ai essayé d'utiliser l'expression de liaison ci-dessous, mais sans résultat
public DetailPageBill()
{
InitializeComponent();
// Set the page DataContext property to the ViewModel.
this.DataContext = App.todoViewModel;
BindingExpression be = lbTotalAmt.GetBindingExpression(TextBlock.TextProperty);
be.UpdateSource();
}
pouvez-vous partager une repro complète? –
Qu'est-ce qu'un repro complet? – Keenlearner
@Keenlearner La valeur "Somme" est-elle modifiée lors du débogage? – asitis