2010-07-01 61 views
0

我想使用MVVM光来实现这样的事情。我有以下场景:List <>绑定和按钮点击使用mvvm光

在我的模型 - 我已经设置了像ActivityName,Image这样的属性,并且有一个类构造函数,它接受2个参数,如名称和图像。

我的数据访问 - 我已经设置了数据库连接并实现了将从数据库中获取数据的所需方法,并且我将其存储在列表中并将列表返回给ViewModel。

在我的ViewModel中 - 我创建了list属性,它将通过调用我在DataAccess中定义的GetActivities()方法来返回列表。

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

请帮忙吗?

感谢

+0

你在视图中有什么控制权? – Ragunathan 2010-07-01 05:20:12

+0

我有datagrid来显示图像及其相应的活动 – Tarun 2010-07-01 06:06:35

回答

2
  • 首先的,使用一个ObservableCollection而不是列表,因为它会通知当视图属性或集合的变化。
  • 然后将视图的DataContext设置为viewmodel。如果你使用MVVMLight View Class,那么DataContext会自动设置。你必须在那里给ViewModel名称。
  • 然后将DataGrid的ItemsSource时这样<dg:DataGrid ItemsSource="{Binding YourListInViewModel}"/>
  • 为了处理您可以使用事件到命令的行为和按钮的相应的命令处理程序编写逻辑click事件。
+0

你的意思是说我必须在Data Aceess中使用ObservableCollection,而在存储和查看模型时返回?请建议? – Tarun 2010-07-01 08:42:16

+0

您需要在虚拟机中创建一个ObservableCollection。如果GetActivities()返回一个列表,然后像这样创建一个OC,就像这个'Ob​​servableCollection a = new ObservableCollection(GetActivities());'。但是我建议你创建一个'GetActivities()'方法,它会返回一个'IEnumerable',因为它会避免两次复制:一个从数据库到列表,然后到OC。 – Amsakanna 2010-07-01 10:01:14

+0

谢谢。我会试试看,让你知道 – Tarun 2010-07-01 12:41:13

相关问题