我正在尝试为listview设置ItemSource属性而没有成功。
查看(xaml):
<ListView Margin="10" Name="MyLv" ItemsSource="{Binding}">
....
</ListView>
Code-Behind构造函数(xaml.cs):
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
}
数据模型:
public class DataModel
{
public bool IsSelected { get; set; }
public string ID { get; set; }
public string Desc { get; set; }
}
在此之前,我正在从代码隐藏中加载listview,它正在运行,但现在我想从我的viewmodel加载它,我不知道如何让它工作。
答案 0 :(得分:2)
根据您发布的代码,存在一些问题:
您尚未设置视图的templateContainer.cpp:5: error: ‘C’ is not a template
templateContainer.cpp: In function ‘int main()’:
templateContainer.cpp:10: error: no matching function for call to ‘f(std::vector<int, std::allocator<int> >&)’
。您通常希望将其设置为视图模型类的实例。
DataContext
不会将列表公开为公共属性。 WPF绑定仅适用于公共属性。 ViewModel
应该绑定到此属性,而不是绑定到ItemsSource
本身。
最后,您可能希望DataContext
中的集合为ObservableCollection
。这样,当对集合进行更改时,UI中的列表将自动更新。