我是 MVVM 模式中的数据绑定(bind)列表框,我正在使用 Entity Framework 获取数据,这就是我正在做的事情
XAML:
<ListBox Margin="0,26,860,-146" x:Name="lstuser" ItemsSource="{Binding ListBoxDS}"/>
C#代码:
private ObservableCollection<Users> _lstusers;
public ObservableCollection<Users> ListBoxDS
{
get
{
if (_lstusers == null)
{
_lstusers = new ObservableCollection<Users>();
}
return _lstusers;
}
set
{
_lstusers = value;
NotifyOfPropertyChange("ListBoxDS");
}
}
public class Users
{
public int UserID { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
}
数据上下文:
public static IList<Users> GetAllUsers
{
try
{
using (var context = new ApplicationContext())
{
return context.UsersInfo.ToList();
}
}
finally
{
}
}
在我的 ViewModel
var allusersList=GetAllUsers();
var users = allusersList.Where(a => a.FirstName =="some value").ToList();
foreach (var item in users)
{
_lstusers.Add(new Users { UserID = item.Id, UserName = item.Username,FirstName=item.firstname });
}
当我运行我的项目时,它没有在列表框中显示任何项目,我正在关注 this link
我已经调试过了,数据出现在 ListDS 中。
最佳答案
在您的代码中,我看不到您将项目添加到列表中。它应该是
var users = allusersList.Where(a => a.FirstName =="some value").ToList();
foreach (var item in users)
{
ListBoxDS.Add(new Users { UserID = item.Id, UserName = item.Username,FirstName=item.firstname });
}
编辑:如果您设置了正确的 DataContext,那么您的代码应该可以工作。您可以在运行时使用 Snoop 进行检查。
关于c# - MVVM 模式中的 WPF DataBinding ListBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26988035/