1
我們正在使用Template10開發UWP應用程序。該應用程序正確顯示成本,淨值,稅率和總計。 Tax和Total是ViewModel中的計算屬性。但是,當ViewModel中的Net更新時,在ViewModel中更新了Tax和Total,但在View中未更新。 XAML中:在UWP中只讀計算的屬性在視圖中未更新
<TextBlock
Text="{x:Bind ViewModel.Net,Mode=OneWay}"
/>
<TextBlock
Text="{x:Bind ViewModel.Tax,Mode=OneWay}"
/>
<TextBlock
Text="{x:Bind ViewModel.Total,Mode=OneWay}"
/>
視圖模型:
public class ViewModel : ViewModelBase
{
decimal? _Net = default(decimal?);
public decimal? Net
{
get
{
return _Net;
}
set
{
if (value == 0) value = null;
Set(ref _Net, value);
}
}
decimal? _TaxRate = default(decimal?);
public decimal? TaxRate { get { return _TaxRate; } set { Set(ref _TaxRate, value); } }
public decimal? Tax
{
get
{
return TaxRate/100 * Net;
}
}
public decimal? Total { get { return Net + Tax; } }
我們在視圖模型的命令編輯淨
DelegateCommand _SetDiscount;
public DelegateCommand SetDiscount
=> _SetDiscount ?? (_SetDiscount = new DelegateCommand(() =>
{
// for simplicity deleted calculations for the newNet
this.Net = newNet ?? 0;
},() => true));
網,稅務和道達爾在視圖模型是正確更新。 Net在視圖中正確更新。爲什麼稅收和總計不在視圖中更新?
你在哪裏上升性稅率和總額的變化?我認爲在Set(ref _Net,value)之後;''應該有'RaisePropertyChanged(nameof(Tax)); RaisePropertyChanged(nameof(總計));'。 – Romasz
偉大的問題@Romasz。我如何使用計算屬性來做到這一點? ......哎呦......剛剛得到你的編輯。 – Vague
我編輯了第一條評論。你有公共/保護/內部方法負責提高財產變更,或只有'Set()'? – Romasz