我是MVVM模式中的数据绑定Listbox,我使用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; }
}
的DataContext:
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中。
答案 0 :(得分:1)
我看不到您将该项添加到列表中。它应该是
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进行检查。