Caliburn.Micro在设置VM以继承Screen时,会覆盖View中的title字段

Mar*_*k W 2 c# wpf mvvm caliburn.micro

如果我有一个像这样的ViewModel:

 public class ViewModel : IPropertyChangeBase, IViewModel
 {
 }
Run Code Online (Sandbox Code Playgroud)

我在视图的xaml中设置的"Title"属性,它必须正确显示.

如果我从View继承了ViewModel,那么标题中显示的是ViewModel的完整类型名称,如"MarksProject.ViewModels.ViewModel".这显示在窗口的标题上.

 //View Title property being overriden.
 public class ViewModel : Screen, IViewModel
 {
 }
Run Code Online (Sandbox Code Playgroud)

T04*_*45T 7

Screen定义了Caliburn.Micro用于自动填充标题的属性DisplayName.只需在构造函数中设置如下:

public ViewModel() {
    this.DisplayName = "MyTitle";
}
Run Code Online (Sandbox Code Playgroud)

你将获得你的头衔 - 并在此过程中保存了一个房产;)