0

バインディングに基づいて TextBox 要素の可視性を設定したいと考えています。
例: 2 つの商品の価格値を含むテキスト ボックス

<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding PriceProduct0, Mode=TwoWay}" />
<TextBox Grid.Column="2" Grid.Row="3" Text="{Binding PriceProduct1, Mode=TwoWay}" />

私のモデルでは、WCF サービスから必要な値をクエリし、NotifyPropertyChanged を呼び出してビューを更新します。
問題: 一部のシナリオでは、プロパティの値がありません。その場合、UI 要素を非表示にします。おそらくイベントを発生させることによって、簡単な方法はありますか?

ほとんどのプロパティは double または boolean であるため、NULL を設定することはできません。

解決策:
Ahmed と DHN のおかげで解決策が見つかりました!
ここですべての手順:

  1. null 非許容プロパティをすべて null 許容に変更します。 public double? PriceProduct0
  2. 名前空間が見つからない場合は、次の .dll への参照を追加します Microsoft.TeamFoundation.Controls.WPF.Converters
    <VSHome>\Common7\IDE\PrivateAssemblies\Microsoft.TeamFoundation.Controls.dll
  3. 属性xmlns:myConverters="clr-namespace:Microsoft.TeamFoundation.Controls.WPF.Converters;assembly=Microsoft.TeamFoundation.Controls"に追加<Page>
  4. 追加 <Page.Resources>
    <myConverters:NullToVisibleConverter x:Key="NullToVisibleConverter" />
    </Page.Resources>
  5. <TextBox>次の可視性パラメーターを属性に追加します。
    Visibility="{Binding PriceProduct0, Converter={StaticResource NullToVisibleConverter}, ConverterParameter='invert' }"
4

2 に答える 2