如何更新海燕窗口的名称?
本文关键字:窗口 海燕 何更新 更新 | 更新日期: 2023-09-27 18:18:34
我试图在保存事件后更新海燕窗口的名称/显示名称。
我实现了自己的NameInfo类,它继承了NameInfo抽象类。
public class MyNameInfo : NameInfo
{
private string name = string.Empty;
private string displayName = string.Empty;
private string typeName = string.Empty;
public override bool CanChangeName
{
get { return true; } //I return true so I can change the name at runtime.
}
//Rest of the class implementation
}
我的DisplayName, Name和TypeName必须是相同的,所以当名称改变时,我的代码是:
public override string Name
{
get { return this.name; }
set
{
name = value;
displayName = value;
typeName = value;
OnNameChanged(this);
}
}
我更改了DataSourceManager的"Saved"事件的窗口名称:
DataManager.DataSourceManager.Saved += OnSave;
我用来更新名称的代码是:
if(NameInfo.CanChangeName)
NameInfo.Name = NewName;
但是当我更改名称时,它只在Windows窗口的树中出现更新。
我的窗口的名称显示旧的名称。
我不知道我还需要做什么才能达到我想要的。
My Window是一个自定义窗口
public class MyCustomWindow : ToggleWindow, INameInfoSource, IDeletable
{
是否有办法更新窗口名称本身?
我必须订阅我的"MyCustomWindow"到一些事件,我没有这样做吗?
我真的很感激你能给我的任何帮助!如何在自定义窗口中创建NameInfo ?你需要将自定义窗口对象传递给MyNameInfo,这样你就可以在自定义窗口对象上调用OnNameChanged(window)。下面是一个例子:
private MyNameInfo nameInfo = null;
public NameInfo NameInfo
{
get
{
if (null == nameInfo)
{
nameInfo = new MyNameInfo(this);
}
return nameInfo;
}
}
然后在MyNameInfo的Name属性的setter中,
set
{
name = value;
displayName = value;
typeName = value;
OnNameChanged(this.window);
}