web-dev-qa-db-ja.com

WPFでは、null参照が原因でバインディングが失敗した場合にFallbackValueが使用されますか?

私のビューモデルは、空またはMyListnullというリストを公開しています。この状態で隠したい要素があります。 MyListが空またはnullの場合、要素は折りたたまれている必要があります。要素がある場合は、表示する必要があります。

これが私のDataTriggerです:

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0}" Value="0">
    <Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
  • DataTriggerMyListの場合、このnullはどうなりますか?
  • FallbackValueを使用しますか、それとも失敗しますか?
  • これはどこかに文書化されていますか?
13
sdgfsdh

FallbackValueは、バインディングソースパスが解決されない場合、コンバーターが失敗する場合、または値がプロパティのタイプに対して有効でない場合に使用されます。

nullがプロパティタイプに対して無効でない限り、nullが返された場合は使用されません。この場合、DataTriggerはトリガーされません。この場合、TargetNullValueを使用できます。

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0, TargetNullValue=0}" Value="0">
    <Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
17
Nathan Kovner