【问题标题】:Binding dataset to listbox showing just 1 record将数据集绑定到仅显示 1 条记录的列表框
【发布时间】:2012-12-03 11:14:54
【问题描述】:

我有基于 MVVM 的 WPF 项目。在我看来,我有下一个 ListBox

<ListBox BorderBrush="#6797c8" BorderThickness="2" 
    ItemsSource="{Binding  Path=CategoriesDS}" 
    DisplayMemberPath="MainCategories/Category"/>

这是我在 ViewModel 的代码:

private DataSet categoriesDS;

public DataSet CategoriesDS
{
    get
    {
        if (categoriesDS == null)
        {
            categoriesDS = _dal.GetCategoriesTables();
        }
        return categoriesDS;
    }
    set
    {
        categoriesDS = value;
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this,
                  new PropertyChangedEventArgs("CategoriesDS"));
        }
    }
}

我的数据集包含 2 个表,第一个表(“MainCategories”)包含 3 行。 当我运行我的应用程序时,我只看到“MainCategories”表的第一行。

为什么 ListBox 只显示 1 行?我想显示整个表格。

谢谢

【问题讨论】:

  • 尝试返回一个表格。不是数据集。

标签: c# wpf mvvm binding listbox


【解决方案1】:

您需要直接绑定到表格。您可以创建另一个仅访问 CategoriesDS 属性的属性,然后绑定新属性:

public DataView MainCategories 
{ 
  get { return CategoriesDS.MainCategories.DefaultView; } 
}

public DataView MainCategories 
{ 
  get { return CategoriesDS.Tables[0].DefaultView; } 
}

XAML

<ListBox BorderBrush="#6797c8" BorderThickness="2" 
    ItemsSource="{Binding  Path=MainCategories}" 
    DisplayMemberPath="Category"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多