【问题标题】:Is this the correct way to bind ComboBox?这是绑定 ComboBox 的正确方法吗?
【发布时间】:2013-12-06 04:28:49
【问题描述】:

我的绑定完美地向我展示了这些值。但我只是想确保我能朝着正确的方向学习这项技术。我想遵循 MVVM 模式。

这是我的 viewModel 代码:

class MainPageViewModel 
{
    public MainPageViewModel()
    {
        using (Lab_Lite_Entities db = new Lab_Lite_Entities())
        {
            Sex = (from t in db.TypeSexes
                   select t.Value).ToList();
        }
    }

    public List<string> Sex
    {
        get;
        private set;
    }
}

这是我的桌子:

人员表:

ID
Name
SexID 
Age

性别表:

SexID
Value

【问题讨论】:

  • 你能绑定组合框吗?我建议在窗口加载事件而不是构造函数中编写检索性数据的代码。
  • 0 未知性别 1 男 2 女 5 女->男 6 男 -> 女 9 根据某些国家关于性别的国家标准代码未指定性别

标签: c# wpf mvvm


【解决方案1】:

简答:是的。

长答案:有点。

您在这里拥有的只是将组合框绑定到列表所需的一半。 您的 XAML 应该如下所示:

<Combobox ItemSource={Binding Sex} ... />

这实际上是将组合框绑定到集合(在您的情况下为列表)。

通常,建议是绑定到 Observable 集合,但由于我看不到您的 Sex 表可能会如何突然发生变化,所以这不是一个大问题,绑定列表也应该可以工作。

另外,您应该设置数据上下文。要么在视图上全局,要么在组合框上。大多数 MVVM 框架都会为您提供某种定位器的帮助。

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    相关资源
    最近更新 更多