WPF 绑定 tp ViewModel
Posted
技术标签:
【中文标题】WPF 绑定 tp ViewModel【英文标题】:WPF Binding tp ViewModel 【发布时间】:2012-07-06 12:02:39 【问题描述】:我无法将列表视图绑定到 ViewModel。我的 ViewModel 的代码如下:
class MyViewModel : INotifyPropertyChanged
ObservableCollection<MyDataItemViewModel> dataToShow;
public ObservableCollection<MyDataItemViewModel> DataToShow
get
return dataToShow; // A breakpoint here is never hit
public MyViewModel(ObservableCollection<MyDataItemViewModel> toShow)
dataToShow = toShow; // A breakpoint here reveals that there is data
RegisterCommands();
...
我的 XAML 如下:
<ListView Name="DataView"
...
ItemsSource="Binding MyViewModel.DataToShow">
<ListView.View>
<GridView>
<GridViewColumn Header="Number"
...
DisplayMemberBinding="Binding Path=Details.Number" />
...
MyDataItemViewModel
类的代码返回一个名为Details
的公共类,其中包含许多属性,包括Number
。
屏幕显示正常,但没有任何数据。
【问题讨论】:
你设置了view的datacontext了吗? 请添加您如何设置数据上下文的代码 【参考方案1】:试试这个:
ItemsSource="Binding DataToShow"
【讨论】:
这行得通,谢谢!我有点不清楚为什么。我以前见过这样的数据绑定,即使类不是静态的。ListView
的数据上下文是MyViewModel
实例。因此,路径 DataContext.DataToShow
有效,但 DataContext.MyViewModel.DataToShow
无效,因为 MyViewModel
类没有 MyViewModel
属性。此外,您可以查看 Visual Studio 输出窗口以查找绑定错误。以上是关于WPF 绑定 tp ViewModel的主要内容,如果未能解决你的问题,请参考以下文章