WPF:在MVVM中从viewmodel绑定listview itemsource
我正在尝试为listview设置ItemSource属性,但未成功 视图(xaml):WPF:在MVVM中从viewmodel绑定listview itemsource,wpf,listview,itemssource,Wpf,Listview,Itemssource,我正在尝试为listview设置ItemSource属性,但未成功 视图(xaml): <ListView Margin="10" Name="MyLv" ItemsSource="{Binding}"> .... </ListView> public MyView() { InitializeComponent(); } private List<DataModel> lstData
<ListView Margin="10" Name="MyLv" ItemsSource="{Binding}">
....
</ListView>
public MyView()
{
InitializeComponent();
}
private List<DataModel> lstData = null;
public MyViewModel()
{
this.lstData = this.LoadData(); // this connects to a database an extract info to be loaded in listview
}
视图模型:
<ListView Margin="10" Name="MyLv" ItemsSource="{Binding}">
....
</ListView>
public MyView()
{
InitializeComponent();
}
private List<DataModel> lstData = null;
public MyViewModel()
{
this.lstData = this.LoadData(); // this connects to a database an extract info to be loaded in listview
}
在此之前,我从code behind加载listview,它正在工作,但现在我想从我的viewmodel加载它,我不知道如何使其工作。根据您发布的代码,有几个问题:
DataContext
。通常需要将其设置为视图模型类的实例ViewModel
不会将列表公开为公共属性。WPF绑定只在公共属性上工作。ItemsSource
应该绑定到此属性,而不是绑定到DataContext
本身最后,您可能希望
ViewModel
中的集合成为一个集合。这样,当对集合进行更改时,UI中的列表将自动更新。根据您发布的代码,存在两个问题:
DataContext
。通常需要将其设置为视图模型类的实例ViewModel
不会将列表公开为公共属性。WPF绑定只在公共属性上工作。ItemsSource
应该绑定到此属性,而不是绑定到DataContext
本身ViewModel
中的集合成为一个集合。这样,当对集合进行更改时,UI中的列表将自动更新。请参见此处:基本上,
,但在您首先修复@Andy在此答案中提及的所有其他内容之前,此操作不会起作用。基本上,
,但在您首先修复@Andy在此答案中提及的所有其他内容之前,此操作不会起作用。