シェルビューモデルクラスのプロパティ上のWPFウィンドウのバインディングタイトルの問題[Caliburn.micro

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

質問

WPFウィンドウのタイトルプロパティのシェルビューモデルクラスのバインディングプロパティに簡単な問題があります。シェルです。

私のシェルビューは次のように見えます:

<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>

シェルビューモデルクラス:

 [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";
        }
    }

Shell Viewのアプリタイトル(WPFウィンドウ)を実行すると、namespace.shellviewmodelclass、シェルビューモデルクラスではプロパティタイトルの値がありません。

シェルビューで画面をアクティブにすると、ウィンドウのタイトルプロパティはnamespace.viewmodelclassです。

この動作を削除するにはどうすればよいですか?アドバイスをありがとう。

役に立ちましたか?

解決

iScreenはihavedisplayNameで定義されており、CMフレームワークの画面クラスにはdisplayNameのプロパティがあるため、このようなshellViewModelにそのプロパティを設定するだけでいいのです。

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

他のヒント

指定したコードから判断するのは少し難しいですが、ウィンドウのデータコンテキストをコードビハインドのShellViewModelのインスタンスに割り当てると思います。 ShellViewModelはいつ初期化されますか?

実装する必要があります InotifyPropertyChanged ViewModelでは、変更された値を確認したいプロパティの場合。ここのリンクはMSDNドキュメントへのものですが、Googleなどを検索すると、多くの例が表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top