MVVM 模式中的 WPF 数据绑定列表框
本文关键字:数据绑定 列表 WPF 模式 MVVM | 更新日期: 2023-09-27 18:30:57
我是MVVM模式中的databind Listbox,我正在使用实体框架来获取数据,这就是我的做法
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
{
}
}
在我的视图模型中
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 });
}
当我毁了我的项目时,它没有在列表框中显示任何项目,我正在点击此链接我已经调试了它,数据出现在 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 进行检查。