我已经看到了一些使用行为触发Silverlight动画的很好的例子。通过简单地将行为拖动到屏幕上的控件上,使用Expression Blend似乎非常容易。但是,如果我的控件实际上不在屏幕上,那该怎么办呢,因为我使用的是一个绑定到MVVM模式中的ViewModel的Listbox。在将事物添加到ViewModel中的集合时,将在运行时创建列表框项。那么我如何将行为附加到那些动态加载的列表框项?
答案 0 :(得分:1)
这是MVVM的伟大之处。您可以使用DesignTime数据填充ViewModel的属性:
示例下面提供了一个字符串列表的viewmodel上的属性,在设计时它提供了3个项目的列表:
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");
}
}