私はWP7アプリケーションで作業していますが、TextBlock
をプロパティにバインドする際に問題が発生しました。私はMVVMとC#の初心者ですから、何が間違っているのか分かりません。TextBlockバインディングの更新
最後にこの問題を解決しましたが、私のソリューションがなぜ機能するのか分かりません(いつでも楽しい...)ので、本当にあなたの指導に感謝します。より人間が読める記述である(
// Broken
namespace MyApp.MyModel
{
public class MetaData : INotifyPropertyChanged
{
private StatusType status;
public StatusType Status
{
get { return status; }
set
{
status = value;
statusMessage = ConvertStatusToSomethingMeaningful(value);
}
}
private string statusMessage;
public string StatusMessage
{
get { return statusMessage; }
private set
{
statusMessage = value;
// This doesn't work
NotifyPropertyChanged("StatusMessage");
}
}
...
}
}
Status
がenum
あり、そしてそれは私のアプリで設定されていますとき、それはあまりにもStatusMessage
を設定します:私のアプリのモデルでは
は、私はもともとこのような何かを持っていましたユーザーを表示する)。 My ViewのTextBlock
はStatusMessage
にバインドされていますが、上記のコードを使用して更新されることはありません。
ただし、NotifyPropertyChanged("StatusMessage")
をStatus
に移動すると、私のビューのTextBlock
のように更新されるはずです。しかし、私は上記の元のコードがそうでないときになぜこれが機能するのか理解していません。この行に:)
あなたは 'ConvertStatusToSomethingMeaningful'と' XAML'私たちを見ることができますか? –