c# - MVVM 模式中的 WPF DataBinding ListBox

标签 c# wpf xaml mvvm

我是 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/

相关文章:

c# - 堆栈跟踪中的敏感信息

c# - MVVM 中的绑定(bind)错误

wpf - 当绑定(bind)值发生变化时,启动动画的最佳方式是什么?

c# - DataTemplateSelector 抛出 MS.Internal.NativeParseException

c# - 在 X 轴中将 CartesianChart 与 DateAxis 和 DateModel 结合使用

c# - 在 XAML 中找不到 WPF 类

c# - TextRange GetPositionAtOffset 未按预期运行

javascript - 将 C# View 模型转换为 JavaScript 模型时转义 HTML 标签

c# - 在 C# 或 VC++ 中导入 MinGW C++ DLL

wpf - 当不是数据上下文时绑定(bind)到窗口 View 模型属性