Как вызвать событие изменения свойства, чтобы вызвать другие свойства
Я не уверен, что мой заголовок правильный. У меня есть два двойных свойства, которые я связываю с 2 текстовыми полями, и я хотел бы рассчитать их общее количество, когда изменяется одно свойство. Свойство RemainingBalance - это место, где я вычисляю и отображаю итог. я думал, что код ниже будет рассчитывать, когда значение GiftSold или GiftUsed изменилось в пользовательском интерфейсе. Я даже попробовал режим twoway, но он все еще не работает.
private double _giftSold;
public double GiftSold
{
get { return _giftSold; }
set
{
if (value != _giftSold)
{
_giftSold = value;
OnPropertyChanged("GiftSold");
OnPropertyChanged("RemainingBalance");
}
}
}
private double _giftUsed;
public double GiftUsed
{
get { return _giftUsed; }
set
{
if (value != _giftUsed)
{
_giftUsed = value;
OnPropertyChanged("GiftUsed");
OnPropertyChanged("RemainingBalance");
}
}
}
public double RemainingBalance
{
get { return GiftSold - GiftUsed; }
}
вот мой xaml
<StackPanel Orientation="Horizontal">
<TextBlock Text="Gift Sold "/>
<TextBox Text="{Binding GiftSold, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Gift Used "/>
<TextBox Text="{Binding GiftUsed, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Remain Balance "/>
<TextBlock Text="{Binding RemainBalance}"/>
</StackPanel>
1 ответ
private double _giftSold;
public double GiftSold
{
get { return _giftSold; }
set
{
if (value != _giftSold)
{
_giftSold = value;
CalculateRemainingBalance();
OnPropertyChanged("GiftSold");
}
}
}
private double _giftUsed;
public double GiftUsed
{
get { return _giftUsed; }
set
{
if (value != _giftUsed)
{
_giftUsed = value;
CalculateRemainingBalance();
OnPropertyChanged("GiftUsed");
}
}
}
private double _RemainingBalance;
public double RemainingBalance
{
get { return _RemainingBalance }
}
private void CalculateRemainingBalance()
{
_RemainingBalance = GiftSold - GiftUsed;
OnPropertyChanged("RemainingBalance");
}
Попробуй это.