【问题标题】:WPF Binding tp ViewModelWPF 绑定 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了吗?
  • 请添加您如何设置数据上下文的代码

标签: c# .net xaml data-binding mvvm


【解决方案1】:

试试这个:

ItemsSource="{Binding DataToShow}"

【讨论】:

  • 这行得通,谢谢!我有点不清楚为什么。我以前见过这样的数据绑定,即使类不是静态的。
  • ListView 的数据上下文是MyViewModel 实例。因此,路径 DataContext.DataToShow 有效,但 DataContext.MyViewModel.DataToShow 无效,因为 MyViewModel 类没有 MyViewModel 属性。此外,您可以查看 Visual Studio 输出窗口以查找绑定错误。
猜你喜欢
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 2015-11-13
  • 2011-02-01
  • 2010-12-05
  • 1970-01-01
  • 2015-07-04
  • 2012-06-11
相关资源
最近更新 更多