WPF绑定和属性定义

时间:2015-03-12 16:53:45

标签: wpf modern-ui

我使用ViewModel的LinkCollection属性进行绑定,LinkCollection在ViewModel的构造函数中填充:

    public SurveySelectionViewModel()
    {
        foreach (var year in Surveys().Select(x => x.year.ToString()).Distinct())
        {
            this.Years.Add(new Link { DisplayName = year, Source = new Uri("http://www.stackoverflow.com") });
        }
    }

当我的ListCollection"年"时,视图中会显示年份。定义如下:

private LinkCollection years = new LinkCollection();
public LinkCollection Years
{
    get { return this.years; }
    set
    {
        if (this.years != value)
        {
            this.years = value;
        }
    }
}

为什么这些年没有显示我将上述内容减少到:

public LinkCollection Years = new LinkCollection();

LinkCollection仍然充满了岁月......但它们没有显示出来。

1 个答案:

答案 0 :(得分:1)

因为public LinkCollection Years = new LinkCollection();Years定义为字段,而不是属性,并且您无法绑定到WPF中的字段。

你能做的是:

public LinkCollection Years { get; private set; }

然后在构造函数中设置Years

Years = new LinkCollection();