【问题标题】:How to access property of object inside ObservableCollection?如何访问 ObservableCollection 中对象的属性?
【发布时间】:2017-12-01 13:33:07
【问题描述】:

我有一个通用的 ObservableCollection

public ObservableCollection<T> _DGModels;

然后我将数据插入到 ObservableCollection 中

public static ObservableCollection<dynamic> GetDGModelFromDatabase()
    {

        return new ObservableCollection<dynamic>
        {
            new Student { FirstName="Tom", LastName="Jones"},
            new Student { FirstName="Dick", LastName="Tracey"},
            new Student { FirstName="Harry", LastName="Hill"},
            new Student { FirstName="Jack" , LastName="Sparrow"},
            new Student { FirstName="Davy" , LastName="Jones"}
        };
    }

每个插入的数据都是一个类的实例

public class Number : INotifyPropertyChanged
{
    public int firstNumber;
    public int lastNumber;

    public int FirstNumber

    public int LastNumber

    public int PlusNumber


    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged(string propertyName)

}

我的问题是如何使用 Type.GetProperty() 访问 Number 的 FirstName 或 LastName 属性?

【问题讨论】:

  • 什么是 GetProperty()?

标签: c# wpf silverlight


【解决方案1】:

要使用反射获取属性FirstName(或LastName)的值,您只需要按照您的要求使用GetProperty(),如下所示:

Number num = new Number() { FirstNumber = 1, LastNumber = 5 };

int first = (int)num.GetType().GetProperty("FirstNumber").GetValue(num,null);

Console.WriteLine(first);

假设您的Number 类如下所示:

public class Number : INotifyPropertyChanged
{
    public int FirstNumber { get; set; }
    public int LastNumber { get; set; }
    public int PlusNumber { get; set; }

    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged(string propertyName)
    { 
        //... 
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2019-06-02
    • 2020-02-11
    相关资源
    最近更新 更多