AvalonDock 3.3.0.0 MVVM模式下LayoutAnchorable使用咨询
在AvalonDock中采用MVVM模式的开发实践
最近我在尝试用MVVM模式结合AvalonDock做WPF开发,整理了一段核心实现代码,分享给大家:
首先在ViewModel中定义用于管理锚定面板项的可观察集合属性:
Property Documents = New ObservableCollection(Of Xceed.Wpf.AvalonDock.Layout.LayoutAnchorable)
接下来是创建并添加自定义锚定面板项的代码:
' 实例化自定义用户控件(ViewReminders是我自己实现的简单用户控件) Dim RemindersView As New ViewReminders ' 创建新的LayoutAnchorable实例 Dim NewItem As New Xceed.Wpf.AvalonDock.Layout.LayoutAnchorable NewItem.Title = "My Reminders" ' 设置面板显示标题 NewItem.ContentId = "MYID123" ' 设置面板的唯一标识ID NewItem.Content = RemindersView ' 将自定义用户控件作为面板内容 ' 将新创建的面板项添加到ViewModel的集合中 Documents.Add(NewItem)
关于XAML部分,这里为了简洁就不完整展示了,核心是把AvalonDock的对应容器控件(比如LayoutAnchorablePane)和ViewModel中的Documents属性做数据绑定,这样就能在界面上渲染出我们定义的锚定面板了。
内容的提问来源于stack exchange,提问作者Stelios
相关产品推荐
相关产品推荐

