Wpf 列表<&燃气轮机;使用mvvm灯光绑定并单击按钮

Wpf 列表<&燃气轮机;使用mvvm灯光绑定并单击按钮,wpf,data-binding,mvvm,mvvm-light,Wpf,Data Binding,Mvvm,Mvvm Light,我正在尝试使用MVVM light来实现类似的功能。我有以下情况: 在我的模型中——我设置了ActivityName、Image等属性,还有一个类构造函数,它接受name和Image等2个参数 Im my DataAccess——我已经设置了数据库连接,并实现了从DB获取数据所需的方法,我正在列表中存储数据,并将列表返回给ViewModel 在我的ViewModel中——我创建了list属性,该属性将通过调用DataAccess中定义的GetActivities()方法返回list 现在我的问题

我正在尝试使用MVVM light来实现类似的功能。我有以下情况:

在我的模型中——我设置了ActivityName、Image等属性,还有一个类构造函数,它接受name和Image等2个参数

Im my DataAccess——我已经设置了数据库连接,并实现了从DB获取数据所需的方法,我正在列表中存储数据,并将列表返回给ViewModel

在我的ViewModel中——我创建了list属性,该属性将通过调用DataAccess中定义的GetActivities()方法返回list

现在我的问题是,我不知道如何在视图中绑定它,以便通过单击按钮,它将显示带有图像的活动列表。通过点击某个按钮,一个新窗口将打开并显示所需的结果。如何绑定上述列表并使用MVVM light实现按钮功能

能帮忙吗


感谢您绑定到控件的DataContext
  • 首先,使用ObservableCollection而不是List,因为它会在属性或集合更改时通知视图
  • 然后将视图的DataContext设置为viewmodel。如果您使用MVVMLight视图类,那么DataContext将自动设置。您只需在此处指定ViewModel名称
  • 然后像下面这样设置DataGrid的ItemsSource
  • 对于处理单击事件,您可以使用事件来命令行为,并在按钮的相应命令处理程序中写入逻辑

  • 您在视图中有什么控制?我有datagrid来显示图像及其相应的活动您的意思是说我在存储时必须在数据访问中使用ObservableCollection,在返回时必须在视图模型中使用ObservableCollection?请建议?您需要在VM中创建一个ObservableCollection。如果GetActivities()返回一个列表,那么就从中创建一个OC,如下所示
    observateCollection a=newobservateCollection(GetActivities())。但我建议您创建一个方法
    GetActivities()
    ,它将返回一个
    IEnumerable
    ,因为这样可以避免复制两次:一次从数据库复制到列表,然后复制到OC。谢谢。我会尝试一下,让你知道