0

ビューモデルに、カスタム クラス プロパティを返す int プロパティがあります。クラス参照が null かどうかを確認します。その場合、値を表示しないために、ビューに空の値を返したいと考えています。

コードは次のようになります。

public int percentage
{
get {
   if (customClass != null)
   {
      return customClass.getInt();
   }
   else
   {
      return 0;
   }
...
}
4

2 に答える 2

4

「値なし」の結果を返したい場合は、を返す必要がありますnull。これはの有効な値ではないため、代わりにintプロパティのタイプを次のように変更する必要があります。int?

public int? Percentage
{
    get { return customClass == null ? null : customClass.getInt(); }
}

これまでに構文を見たことがない場合は、int?はの省略形ですSystem.Nullable<int>

バインディングPercentageに適切なものを定義することで、ビュー内からの値を本当に好きなものに変換することもできることを忘れないでください。Converter

于 2012-06-21T12:07:31.500 に答える
1

intは値型であるため、null にすることはできません。代わりに、 null の可能性がint?ある ( の短縮形である) を返すか、 when に適切な値などNullable<int>の特定の値を指定することができます。もちろん、それはあなたの要件に依存します。int0customClass == null

public int? Percentage {
    get {
       if (customClass != null)
          return customClass.getInt();
       else
          return null;
    }
}

を呼び出すものはすべて、null かどうかPercentageを確認し、実際の整数を抽出するために使用する必要があります。これは isの場合に機能します。Percentage.HasValuePercentage.ValuePercentage.HasValuetrue

于 2012-06-21T12:09:53.850 に答える