我有一個WPF窗口並給它一個DataContext,當目標改變它工作正常時(通過使用UpdateSourceTrigger
),但是當DataContext屬性(源)中的一個改變時,目標不會更新。源更新時有什麼辦法強制目標綁定更新?是否有像ObservableCollection
這樣的物品?在wpf綁定中更新源
這是我的類:
public class PaymentDetailInfo : INotifyPropertyChanged
{
public Payment Payment
{
get;
set;
}
public int SumOfValidNormalOverTimePrice
{
get
{
return 100 * Payment.ConsideredValidNormalOverTime/60;
}
}
public int SumOfInvalidNormalOverTimePrice
{
get
{
return 100 * Payment.ConsideredInvalidNormalOverTime/60;
}
}
public int SumOfOverPriceConst
{
get
{
int _sumOfOverPriceConst = 0;
if (!Payment.ValidNormalOverTimePriceIsPercent)
_sumOfOverPriceConst += SumOfValidNormalOverTimePrice;
if (!Payment.InvalidNormalOverTimePriceIsPercent)
_sumOfOverPriceConst += SumOfInvalidNormalOverTimePrice;
_sumOfOverPriceConst += Payment.RewardPrice;
return _sumOfOverPriceConst;
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
}
在我的窗口中的一些元件被結合到PaymentDetailInfo
Payment
(付款是數據庫表),所以作爲一個例子,用戶可以改變Payment.ConsideredValidNormalOverTime
然後PaymentDetailInfo.SumOfValidNormalOverTimePrice
將改變,然後PaymentDetailInfo.SumOfOverPriceConst
會改變。但是,即使更新了我的表單的datacontext,綁定到PaymentDetailInfo.SumOfOverPriceConst
的目標也不會更新。
在您的數據類上實現'INotifyPropertyChanged'接口來更新目標綁定。這是使用MVVM更新目標的標準方法。 –
你可以發佈你的代碼嗎? – Daniel