0

这种方法对我来说似乎有一半的时间。

我可以看到这些行在调试器中被执行:

agencyListBox.DataBindings.Add(new Binding("DataSource", this.Data.Agencies, "AvailableAgencies"));
agencyListBox.DataBindings.Add(new Binding("SelectedItem", this.Data.Agencies, "SelectedAgency", false, DataSourceUpdateMode.OnPropertyChanged));

代理类如下所示:

public AgencyType SelectedAgency
{
    get
    {
        return _selected;
    }
    set
    {
        _selected = value;
        OnPropertyChanged("SelectedAgency");
    }
}

public List<AgencyType> AvailableAgencies
{
    get
    {
        return _availableList;
    }
    set
    {
        _availableList = value;
        OnPropertyChanged("AvailableAgencies");
    }
}

所以我在绑定中引用的字段确实存在。

DisplayMember 设置为在 AgencyType 类中定义的“标签”:

public event PropertyChangedEventHandler PropertyChanged;

private string _label { get; set; }

public string Label
{
    get { return _label; }
    set
    {
        _label = value;
        OnPropertyChanged("Label");
    }
}

private string _identifier { get; set; }

public string Identifier
{
    get { return _identifier; }
    set
    {
        _identifier = value;
        OnPropertyChanged("Identifier");
    }
}

public AgencyType()
{
    Label = string.Empty;
    Identifier = string.Empty;
}

private void OnPropertyChanged(string propertyName)
{
    if (PropertyChanged != null)
    {
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}

根据需要显示值。

但是当我更改选择时, data.Agencies.SelectedAgency 为空!

有没有人有任何提示?

4

0 回答 0