2011-02-27 49 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