gpt4 book ai didi

c# - WPF 将组合框绑定(bind)到 LINQ 填充的可观察集合

转载 作者:行者123 更新时间:2023-11-30 22:03:28 25 4
gpt4 key购买 nike

这是第一次使用 WPF,所以请原谅我,我知道这很基础,但我无法让它工作。我只是想将组合框绑定(bind)到 LINQ to EF 填充的 ObservableCollection。当我单步执行代码时,我看到集合已填充,但组合框不显示集合的内容。

这是我的 View 模型:

public class MainWindowViewModel : ViewModelBase
{
# region ObservableCollections

private ObservableCollection<Site> _sitescollection;
public ObservableCollection<Site> SiteCollection
{
get { return _sitescollection;}
set {
if (value == _sitescollection) return;
_sitescollection = value;
RaisePropertyChanged("SiteCollection");
}
}

# endregion


public MainWindowViewModel()
{
this.PopulateSites();
}

// Get a listing of sites from the database
public void PopulateSites()
{

using (var context = new Data_Access.SiteConfiguration_Entities())
{
var query = (from s in context.SITE_LOOKUP
select new Site(){Name = s.SITE_NAME, SeqId = s.SITE_SEQ_ID });

SiteCollection = new ObservableCollection<Site>(query.ToList());

}
}

}

我的站点类:

public class Site : INotifyPropertyChanged
{
#region Properties

string _name;
public string Name
{
get
{
return _name;
}
set
{
if (_name != value)
{
_name = value;
RaisePropertyChanged("Name");
}
}
}

private int _seqid;
public int SeqId
{
get {
return _seqid;
}
set {
if (_seqid != value)
{
_seqid = value;
RaisePropertyChanged("SeqId");
}
}
}

#endregion

#region Constructors
public Site() { }

public Site(string name, int seqid)
{
this.Name = name;
this.SeqId = seqid;
}

#endregion

void RaisePropertyChanged(string prop)
{
if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(prop)); }
}
public event PropertyChangedEventHandler PropertyChanged;
}

还有我的 XAML 绑定(bind):

                <ComboBox Margin="10" 
ItemsSource="{Binding Sites}"
DisplayMemberPath="Name"
SelectedValuePath="SeqId" />

我做错了什么?任何帮助将不胜感激。

最佳答案

您绑定(bind)到路径“Sites”,但您的属性名称是“SiteCollection”。

您绑定(bind)到属性,因此名称必须匹配。还要确保您的数据上下文设置为您的 View 模型对象。

关于c# - WPF 将组合框绑定(bind)到 LINQ 填充的可观察集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com