一例は、(TimeSpan
を経由して、NULL可能である)
そして、あなたはどこかにいくつかのテキストを表示している - こと何かが "セット"されているかどうかに依存しています。
たとえば、何かが実行されている時間を示すstring
としましょう。これを達成するための
使用(バッキングフィールドを持つ)完全なプロパティ:あなたは、その後変更するパブリックプロパティを使用することができますTimeSpan.MinValue
に初期フィールドの値を設定し
。その後、表示したい文字列を、あなたのビューを更新するためにあなたの好きなPropertyChangedイベントハンドラ(または他のコード)を使用する:あなたは、あなたのLengthOfTime
プロパティを更新すると
private TimeSpan _lengthOfTime = TimeSpan.MinValue;
public TimeSpan LengthOfTime
{
get { return _lengthOfTime; }
set
{
_lengthOfTime = value;
OnPropertyChanged("LengthOfTimeString");
}
}
public string LengthOfTimeString
{
get
{
if (LengthOfTime == TimeSpan.MinValue)
{
return "The length of time has not been set.";
}
else
{
return LengthOfTime.ToString("YourFavouriteStringFormatHere");
}
}
}
、それはOnPropertyChanged
を呼び出します(またはあなたが使用してどのようなUIを更新する)get
LengthOfTimeString
の値を再計算し、ビューに表示します。
これは一例です。それを使用するためのシナリオが異なる可能性があります。
私はhttps://msdn.microsoft.com/en-us/library/ms229614(v=vs.100).aspxを見ることをお勧めします。これは、INotifyPropertyChangedの実装方法を示しています。 WPF/XAML/WinRTでBindingsを使用することを考えている場合(既にわかっていない場合)
2ワード:コードの可読性。 – glenebob
なぜタイムスパンを引いても意味がないのですか? 10分間マイナス7分は3分です。それらはすべての時間範囲です。 –
@EricLippertはtimespansを減算するのではなく、minvalueからtimespanを減算します。 – Gaspa79