我有基于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"));
}
}
}
我的DataSet包含2个表,第一个表(“MainCategories”)包含3行。 当我运行我的应用程序时,我只看到“MainCategories”表的第一行。
为什么ListBox只显示1行?我想展示整个表格。
由于
答案 0 :(得分: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"/>