2013-04-14 33 views
0

我有一個關於在WinRT中綁定的問題。 我有一個視圖模型是這樣的:綁定到只有獲取方法的屬性

public class MainPageViewModel : INotifyPropertyChanged 
{ 
    private ObservableCollection<Vehicle> _vehicles = new ObservableCollection<Vehicle>(); 
    public ObservableCollection<Vehicle> Vehicles 
    { 
     get { return _vehicles; } 
     set { _vehicles = value; } 
    } 

而且我有一些屬性,我得到這個主列表中的值,例如

public int GetType1Vehicles 
    { 
     get { return Vehicles.Where(x => x.Type == Type1).Count(); } 
    } 

    public int TotalVehicles 
    { 
     get { return Vehicles.Count(); } 
    } 

我綁定一個UI文本框的「GetType1Vehicles」另一個textbot「TotalVehicles」。問題是,當我更新車輛列表時,帶有所有車輛的ListView被正確更新,但Total和Type沒有。我做錯了什麼? 有人可以幫助我嗎?謝謝!

UPDATE 我找到了一個workarround,但我不確定這是最好的方法。每當我從列表中更改一些時,請手動調用方法:

RaisePropertyChanged("GetType1Vehicles"); 
RaisePropertyChanged("TotalVehicles"); 

是否正確?

回答

0

你是對的,你需要手動調用RaisePropertyChanged。無論如何,當你可以綁定到「Vehicles.Count」時,爲什麼你有TotalVehicles屬性?

0

大衛說得對,爲什麼這TotalVehicles屬性?

使用ObservableCollection,您不應該調用Count()方法,只需使用Count屬性。 如果您只想計算具有特定值的項目而不是集合的大小,那麼Count方法就是有用的,這是屬性的工作。

相關問題