2011-02-27 52 views
1

考慮我有兩個類。C中的ObservableCollection#

教授和TimePerDay。

public class TimePerDay 
{ 
    private ObservableCollection<TimeSpan> _subjTime; 
    public ObservableCollection<TimeSpan> subjTime 
    { 
     get { return _subjTime; } 
     set { _subjTime = value; } 
    } 
} 
private ObservableCollection<TimePerDay> _actualTime; 
    public ObservableCollection<TimePerDay> actualTime 
    { 
     get { return _actualTime; } 
     set { _actualTime = value; RaisePropertyChanged("actualTime"); } 
    } 

我想每個actualTime填充TimePerDay類,我的代碼是

    ObservableCollection<TimePerDay> facultyTime = new ObservableCollection<TimePerDay>(); 
        ObservableCollection<TimeSpan> ts = new ObservableCollection<TimeSpan>(); 
        ts.Add(TimeSpan.FromHours(9)); 
        facultyTime.Add(new TimePerDay() { subjTime = TimeSpan.FromHours(2) }); 

和它給了我錯誤類型System.TypeSpan的實例不能分配給成員類型System.Collections.ObjectModel.ObservableCollection。如果我添加的成員具有相同的類型,它如何不能分配成員?

+1

你的代碼沒有意義。什麼是'ts'? – SLaks 2011-02-27 18:48:12

+3

一般而言,集合屬性不應包含setter。 – SLaks 2011-02-27 18:48:38

+1

@SLaks可以從XAML設置的IIRC集合屬性必須有setter,對嗎? – 2011-02-27 19:01:40

回答

1

在這一行:

facultyTime.Add(new TimePerDay() { subjTime = TimeSpan.FromHours(2) }); 

您正試圖創建一個新的TimePerDay但分配TimeSpansubjTime這是一個ObservableCollection<TimeSpan>。我懷疑你想要

facultyTime.Add(new TimePerDay() { 
    subjTime = new ObservableCollection<TimeSpan> { TimeSpan.FromHours(2) } 
}); 
+0

非常感謝!有效。小錯誤。 – 2011-02-27 19:12:24