首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AvalonDock使用MVVM时,文档关闭不会删除DocumentsSource中的i tem

AvalonDock是一个用于创建可扩展的WPF应用程序的开源库。它提供了一个灵活的布局和管理多个文档窗口的框架。MVVM(Model-View-ViewModel)是一种软件架构模式,用于将用户界面逻辑与业务逻辑分离。

在使用AvalonDock时,文档关闭不会自动从DocumentsSource中删除item。这是因为AvalonDock的设计理念是将文档的生命周期与视图模型分离,以便更好地支持MVVM模式。文档的打开和关闭是由视图模型控制的,而不是由AvalonDock直接管理。

要实现文档关闭时从DocumentsSource中删除item,可以在视图模型中监听文档关闭的事件,并在事件处理程序中手动从DocumentsSource中移除对应的item。以下是一个示例代码:

代码语言:csharp
复制
// 在视图模型中定义DocumentsSource属性
public ObservableCollection<DocumentViewModel> DocumentsSource { get; set; }

// 在构造函数中初始化DocumentsSource
public MainViewModel()
{
    DocumentsSource = new ObservableCollection<DocumentViewModel>();
}

// 监听文档关闭事件
public void OnDocumentClosed(object sender, DocumentClosedEventArgs e)
{
    var closedDocument = e.Document.Content as DocumentViewModel;
    if (closedDocument != null)
    {
        DocumentsSource.Remove(closedDocument);
    }
}

在上述示例中,DocumentsSource是一个ObservableCollection,用于存储所有打开的文档的视图模型。当文档关闭时,通过监听文档关闭事件(例如AvalonDock的DocumentClosed事件),可以获取到关闭的文档对应的视图模型,并从DocumentsSource中移除该视图模型。

关于AvalonDock的更多信息和使用方法,可以参考腾讯云的相关产品介绍链接地址:AvalonDock产品介绍。请注意,此链接仅为示例,实际应根据实际情况选择合适的腾讯云产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 互联网高手教你如何搜集你想要的信息

    写在前面   几个月前,团队邀我做次内部的分享,主题是如何有效搜索信息。这是因为平时工作中,我经常会分享一些专业学习文档,而这些文档的出现往往很及时,回应一些我们自己项目的困惑,所以大家会好奇我如何及时找得到那么专业且对口的参考资料。   这些资料有些来自网络搜索,有些却是来自我的“个人资料库”,它分门别类,容易检索,所以很轻易就能够翻出来示人。所以后来,这次分享便从“搜索术”,扩大为如何获取、整理各种信息的技能。   这原来我认为是常识的东西,却在简单分享后得到好评。受到鼓励之余,我也明白了并不是所有

    08

    C++课程设计,12306模拟写起来就是这么粗暴

    一、12306应该具备那些功能 1.查询(一个月以内的): 1.查车票:出发地+目的地+出发时间->显示经过两站车票信息 (余票,车次信息可直接查询直接打印,是否为过路车,历时不是总历时,是两站间历时)(只有这种查询方式能查询余票) 2.车站车次查询: 车站+出发时间段+到达时间段->打印始发站与终点站信息(车站与时间)。 (查询的的车站即作为始发站,又作为终点站) 3.车次查询:车次+出发日期->打印该车次详细信息 (经过站点序号,站名,到时,发时,停留,终点站,起始站,历时) 2.操作 1.购票(某个区间的票-1)一天限购五张,一个月以内的。 2.退票 (某个区间的票+1) 火车开了之后,不能退票,只能改签。 3.改签(相当于退票+从新购票)一张票仅能改签一次 4.刷新 相当于重新读入 5.换乘 两个城市不能接联通,需要借助最短,需要找出中转城市,可能一个在佳木斯,一个在宜宾,这不一定是换乘一次,只要有火车站无非是换乘的次数多一点,反正能到(间隔大于10min)。 3.管理员操作 1.增删查改站点(查)可以继承一个查询类 票一旦起售,不可修改站点,虽然没怎么见过火车站被拆得,但是还是有,但是拆除不可能是突然的拆除,所以会提前收到消息,先停售,再删除,修改名称可以直接修改。站点到站时间只能修改一个月以后的。 2.放票 无特殊需要,无需操作,每天的列车表都是一样的。 3.增加车次 (没有特殊要求,国家铁路局规定站点名唯一,车次名唯一) 4.用户端操作 1.各种查询 2.买退改,重点是换乘(这个不一定好写) 2.查询已买到的票 二、根据数据写出大体思路

    04
    领券