2012-12-15 28 views
1

我有基于MVVM的WPF项目。在我看来,我的下一个列表框将数据集绑定到仅显示1条记录的列表框

<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")); 
     } 
    } 
} 

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

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

谢谢

+0

尝试返回一个表。不是数据集。 – Paparazzi

回答

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"/> 
相关问题