Problema com o título de ligação da janela WPF na propriedade na classe Model Class [Caliburn.micro

StackOverflow https://stackoverflow.com/questions/4615467

Pergunta

Tenho um problema simples com a propriedade de ligação na classe Model Sell View On Title Property of WPF Window- é o shell.

Minha visualização da concha é assim:

<Window x:Class="Spirit.Views.ShellView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="{Binding Path=Title}" >
    <Grid>
        <ContentControl x:Name="ActiveItem" />
    </Grid>
</Window>

Classe de modelo de visualização de shell:

 [Export(typeof(IShellViewModel))]
    public class ShellViewModel : Conductor<IScreen>.Collection.OneActive, IShellViewModel
    {
        private string _title;

        public string Title
        {
            get { return _title; }
            set
            {
                _title = value;
                NotifyOfPropertyChange(()=>Title);
            }
        }

        public ShellViewModel()
        {
            Title = "Spirit";
        }
    }

Se eu executar o título do aplicativo da SHELL View (WPF Window) estiver no nome do nome.shellViewModelClass, nenhum valor do título da propriedade na classe Model Sell View.

Se eu ativo alguma tela na visualização do shell, a propriedade de título da janela é o nome do nome.ViewModelClass.

Como posso remover esse comportamento? Obrigado pelo conselho.

Foi útil?

Solução

Como o iScreen é definido com o iHaveDisplayName e a classe de tela da estrutura do CM tem uma propriedade do DisplayName, você só precisa definir essa propriedade em seu shellViewModel, assim:

public ShellViewModel()
{
    base.DisplayName = "Spirit";
}

Outras dicas

É um pouco difícil dizer do código que você forneceu, mas presumo que você atribua o DataContext da sua janela a uma instância do ShellViewModel em seu código-behind. Quando o shellViewModel é inicializado?

Você precisa implementar InotifyPropertyChanged No seu ViewModel, para quaisquer propriedades para as quais você deseja ver um valor alterado. O link aqui é para a documentação do MSDN, mas se você pesquisar no Google e/ou mais, verá muitos exemplos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top