ご挨拶、
WPFアプリケーションを作成するとき、私は明らかに多くのバインディングを使用します。ただし、通常はFallbackValueプロパティを使用しないことがわかりました。
私の質問は次のとおりです。FallbackValue=""である必要がある場合は、常にフォールバック値イベントを設定する必要がありますか?
FallbackValueを使用する/使用しない場合のメモリ/パフォーマンス/その他への影響は何ですか?
ご挨拶、
WPFアプリケーションを作成するとき、私は明らかに多くのバインディングを使用します。ただし、通常はFallbackValueプロパティを使用しないことがわかりました。
私の質問は次のとおりです。FallbackValue=""である必要がある場合は、常にフォールバック値イベントを設定する必要がありますか?
FallbackValueを使用する/使用しない場合のメモリ/パフォーマンス/その他への影響は何ですか?
FallbackValueを使用することはほとんどありません。
すべてが正しく設定されていれば、データバインディングが失敗することはないため、フォールバック値が表示されることはありません。
ここで発生する最大のパフォーマンスの問題は、失敗したデータバインディングのコストです(これらは通常、例外を伴い、成功したバインディングよりもはるかにコストがかかります)。FallbackValueを利用すると、このようなパフォーマンスの問題を隠すことができます。したがって、FallbackValueを使用すると、一般的にパフォーマンスが低下すると主張します(ただし、いつものように、状況によって異なります)
負荷が決して失敗しないことが確実でない限りFallbackValue
、機能を提供するために負荷に依存しない場所を提供することを個人的にお勧めします。ロードが失敗する方法は複数あります。画像などが機能に実際に影響を与えない場合、ファイルの破損などが原因で会社のロゴがロードされないという理由だけで、プログラムを失敗させるのはユーザーにとって厳しいことです。 ..。。
ただし、機能にリソースが必要な場合は、フォールバック値を指定するのではなく、例外をトラップして処理する必要があります。
FallbackValue
優先画像ソースでも使用できます。ここでは、リソースの非同期ロードを別の場所(インターネット経由で可能)で起動し、ロードが完了する前に、フォールバック値を使用できるようにします。たとえば、フォールバック値を使用して、画像が戻る前にプレースホルダー画像を提供できます。また、(インターネットからの)画像の読み込みに失敗した場合は、空白の代わりにプレースホルダーを配置します。画面要素のサイズの問題のために空白を使用できない場合があります(サイズがないと物が消えます) 。
パフォーマンスの考慮事項については、フォールバックリソースによるパフォーマンスの低下はあまり感じていません。ただし、リソースが非同期で読み込まれる場合は、基本的に1つではなく2つのリソースが読み込まれることを理解してください。ただし、フォールバックは通常ローカルリソースであるため、パフォーマンスへの影響は最小限に抑えられます。