在MVVM模式下使用Silverlight 4中的行为和动画
问题描述:
我已经看到了一些使用行为在Silverlight中触发动画的好例子。通过简单地将行为拖到屏幕上的控件上,对Expression Blend来说看起来很容易。但是,如果我的控件实际上不在屏幕上,那么我该如何使用绑定到MVVM模式中的ViewModel的Listbox呢?列表框项是在运行时创建的,当事情添加到我的ViewModel集合中时。那么,如何将行为附加到那些动态加载的列表框项目?在MVVM模式下使用Silverlight 4中的行为和动画
答
这是MVVM的伟大之处。您可以使用设计时数据填写您的视图模型的属性:
List<string> _myItems;
public List<string> MyItems
{
get
{
if (DesignerProperties.IsInDesignTool)
return new List<string>() { "item1", "item2", "item3" };
return _myItems;
}
set
{
_myItems = value;
NotifyPropertyChanged("MyItems");
}
}
感谢:下面提供的字符串,并在设计时列表它提供了3个项目的列表上的视图模型的属性
例你的回复。这是否意味着我可以将行为附加到这些设计时项目,并且这些相同的行为也会附加到运行时项目上? – 2010-08-18 09:56:57
是的,因为您将行为添加到ListBox或ListBoxItem,但从未添加到ListBoxItem的特定实例 – 2010-08-18 10:01:10
太棒了!再次感谢。 – 2010-08-18 10:06:11