Я пытаюсь получить сумму для обновления в текстовом блоке, однако я могу только обновить ее, перезапустив эмулятор телефона Windows. Почему это так?Связывание данных с текстовым блоком не обновляется
Код в DisplayBill.xaml
<TextBlock x:Name="lbTotalAmt" Text="{Binding Path=Sum, Mode=TwoWay, UpdateSourceTrigger=Explicit}" Margin="0,364,0,10" Grid.Row="1" />
Код в 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
Update
То, что я пытаюсь сделать, это обновить TextBlock каждый раз, когда в окне списка добавляет пункт. поэтому каждый раз, когда в список добавляется новый элемент, будет обновляться текстовый блок, отображающий общую сумму. Итак, мой вопрос: как я могу обновлять свой текстовый блок каждый раз, когда новый элемент добавляется в список? Кто-нибудь может мне помочь? Я попытался с помощью выражения привязки ниже, но безрезультатно
public DetailPageBill()
{
InitializeComponent();
// Set the page DataContext property to the ViewModel.
this.DataContext = App.todoViewModel;
BindingExpression be = lbTotalAmt.GetBindingExpression(TextBlock.TextProperty);
be.UpdateSource();
}
Вы можете поделиться полным воспроизведением? –
Что такое полное воспроизведение? – Keenlearner
@ Keenlearner Получаете ли вы значение «Sum» при отладке? – asitis