我正在尝试在 Save 事件之后更新 Petrel 窗口的名称/显示名称。
我实现了自己的 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 的“已保存”事件上更改了窗口的名称:
DataManager.DataSourceManager.Saved += OnSave;
我用来更新名称的代码是:
if(NameInfo.CanChangeName)
NameInfo.Name = NewName;
但是当我更改名称时,它只在Windows窗口的树中显示为更新。
我的窗口的名称显示旧名称。
我不知道我还需要做什么才能实现我想要的。
我的窗口是一个自定义窗口
public class MyCustomWindow : ToggleWindow, INameInfoSource, IDeletable
{
有没有办法更新窗口名称本身?
我是否必须将我的“MyCustomWindow”订阅到某个事件而我没有这样做?
我将非常感谢您为我提供的任何帮助!