シェルビューモデルクラスのプロパティ上のWPFウィンドウのバインディングタイトルの問題[Caliburn.micro
-
26-09-2019 - |
質問
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などを検索すると、多くの例が表示されます。
所属していません StackOverflow