-1
ページ間でデータを転送し、バインディングを行う必要があります。 最初のページには、テキストボックスが「ユーザー名」プロパティにバインドされています。 すべてのページは、私がテキストブロックユーザー名プロパティにバインドされている2ページ目には、このWPFページ間のバインド/ビューモデル間でのデータの転送
SecondPageViewModel.Username = this.Username;
ような何かをやった最初のページにあるボタンをクリックした後、独自ののviewmodelを持っていますが、ページの変更後に、2ページ目のショーテキストなし。
<TextBlock Text="{Binding Username}" />
私が発見し、作品の唯一の方法は、コンストラクタ内の第2ページのviewmodel内にあるユーザ名を更新したタスクを行います。
Task.Run(async() =>
{
while(true)
{
await Task.Delay(200);
this.Username = FirstPageViewModel.Username;
}
});
他の方法がありますか?ここでの作業を行うことで、いつも動いているとは限りません。ページが速すぎると、ユーザー名が表示されないことがあります。
すべてのviewmodelは、INotifyPropertyChanged + FodyWeaverを実装しています。
SecondPageViewModel.Usernameが宣言されてどのように? –
あなたは、メッセージング間のビューモデルを経由する必要があります。 https://marcominerva.wordpress.com/2014/06/25/how-to-send-string-and-content-messages-with-mvvm-light-messenger/ – GCamel
public staticユーザー名{get;セット} = "";両方のビューモデルで – Minorsonek