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的主要内容,如果未能解决你的问题,请参考以下文章

TP框架如何绑定参数。目的进行ajax验证

WPF的绑定

TP6 事件绑定监听订阅

TP6 事件绑定监听订阅

TP6 事件绑定监听订阅

WPF入门教程系列十五——WPF中的数据绑定