【问题标题】:Using behaviours and animations in Silverlight 4 with MVVM pattern在 Silverlight 4 中使用带有 MVVM 模式的行为和动画
【发布时间】:2011-03-31 10:55:42
【问题描述】:

我已经看到了一些在 Silverlight 中使用行为触发动画的好例子。只需将行为拖到屏幕上的控件上,使用 Expression Blend 就可以轻松完成这一切。但是,如果我的控件实际上不在屏幕上怎么办,因为我使用的是绑定到 MVVM 模式中的 ViewModel 的 Listbox。将事物添加到我的 ViewModel 中的集合时,会在运行时创建列表框项。那么如何将行为附加到那些动态加载的列表框项上呢?

【问题讨论】:

    标签: silverlight mvvm


    【解决方案1】:

    这是 MVVM 的伟大之处。您可以使用 DesignTime 数据填充 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");
            }
        }
    

    【讨论】:

    • 感谢您的回复。这是否意味着我可以将行为附加到那些设计时项,而这些相同的行为也会附加到运行时项?
    • 是的,因为您将行为添加到 ListBox 或 ListBoxItem 但从未添加到 ListBoxItem 的特定实例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    相关资源
    最近更新 更多