最初はnullであるオブジェクトへのデータバインディング

サファイア

Name、SensorWidth、SensorHeightなどのプロパティを持つCameraオブジェクトがあります。これらのプロパティをUIにバインドしたいのですが、アプリケーションの起動時にCameraがnullになっています(ユーザーは任意のカメラを選択できます)。カメラが開かれている場合にのみ、Cameraオブジェクトが初期化されます(そしてそのすべてのプロパティがロードされます)。

オブジェクトが初期化されたときに機能し始めるようにXAMLでデータバインディングを設定する方法はありますか?

これはC#で簡単に行うことができます-カメラを開いた後にデータバインディングを設定しますが、これはビューコードビハインドで行う必要があります。これは、カメラを開くためのボタンがコマンドインターフェイスを使用して通信しているため、使用しているMVVMパターンにはおそらく悪いですViewModelを使用します。

これに正しくアプローチする方法は何ですか?

マイク・ストローベル

オブジェクトが初期化されたときに機能し始めるようにXAMLでデータバインディングを設定する方法はありますか?

バインディングは、null値を適切に処理するように設計されています。Camera起動時にオブジェクトがnullの場合は、問題はありませんWPFは、バインディングソースがnullである可能性があり、プロパティパスに沿ったすべての値がnullである可能性があることを想定しています。

とはいえBinding、が値を正常に生成するタイミングを理解することは有用です

  1. バインディングソースへのパスは正常に解決されます。
  2. 値コンバーターは、もしあれば、結果の値を変換することができます。
  3. 結果の値は、バインディングターゲット(ターゲット)プロパティに対して有効です。

(1)と(2)が有効な値を生成できない場合、バインディングはターゲットプロパティのデフォルト値を生成します。この状況で使用する代替を指定する場合はFallbackValue、バインディングにを指定できます。

あなたの場合、があり{Binding Camera.Name}Cameraがnullの場合、バインディングは値を生成できません。バインディングを{Binding Camera.Name, FallbackValue='n/a'}変更した場合n/aCameraがnullの場合に文字列が生成されます。

TargetNullValueバインディング有効な値を生成するが、その値がnullである場合に、代替値を指定できますたとえば、それCamera自体がnull以外であるが、Namenullである場合{Binding Camera.Name, TargetNullValue='(no name)'}、文字列を生成します(no name)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

StringFormatを使用したマルチバインディング-内部コンバーターにtargetType ==オブジェクトがあるのはなぜですか?

分類Dev

リスト内のオブジェクトへのデータバインディング

分類Dev

Jacksonデータバインディング:既存のオブジェクトへの読み込み

分類Dev

オブジェクトへのデータバインディング-データソースの変更をキャンセルする方法

分類Dev

動的オブジェクトの双方向データバインディング

分類Dev

オブジェクトとの双方向データバインディング?

分類Dev

データバインディングに関するnullオブジェクト参照

分類Dev

オブジェクトのKVPへのデータバインディング、オブジェクトはプロパティをリアルタイムで使用または更新できませんか?

分類Dev

オブジェクトバインディングで最初に0を失う

分類Dev

'オブジェクト'タイプへのDotvvmランタイムバインディング

分類Dev

Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

分類Dev

ngModelのオブジェクトキーに対するngForのオブジェクトプロパティの双方向データバインディング

分類Dev

WebAPIバインディングはAngularのオブジェクトオブジェクトです

分類Dev

TypescriptIonicのデータバインディングにオブジェクト関数を公開する

分類Dev

XAMLデータバインディングシングルトンのようなMVVMオブジェクト

分類Dev

コンポーネント間のオブジェクトの双方向データバインディング

分類Dev

有効な参照であるが空の/新しいオブジェクトへの双方向バインディングを設定する方法

分類Dev

Spring部分更新オブジェクトデータバインディング

分類Dev

Rでのオブジェクト名へのアクセスとバインディング

分類Dev

オブジェクトバインディングパターンの残りのプロパティを最後にする必要があります

分類Dev

MainWindowクラス内で作成されたオブジェクトへのWPFバインディング

分類Dev

C#WPF-オブジェクトリストのプロパティへのデータバインディング

分類Dev

バインディングオブジェクトの削除/削除

分類Dev

LiveDataオブジェクトの特定の属性の双方向データバインディング

分類Dev

ボディ属性からのオブジェクトへの再帰的バインディング

分類Dev

Eclipse JfaceMVCの複数のデータバインディングオブジェクト

分類Dev

Vue.js:v-forでオブジェクトを使用した双方向データバインディング

分類Dev

Spring Webflowバインディング:Converter-java.lang.IllegalArgumentException:各コンバーターオブジェクトは、Converter ...インターフェイスの1つを実装する必要があります

分類Dev

双方向のデータバインディングなしでAngular2の「選択」から選択したオブジェクトを取得する方法

Related 関連記事

  1. 1

    StringFormatを使用したマルチバインディング-内部コンバーターにtargetType ==オブジェクトがあるのはなぜですか?

  2. 2

    リスト内のオブジェクトへのデータバインディング

  3. 3

    Jacksonデータバインディング:既存のオブジェクトへの読み込み

  4. 4

    オブジェクトへのデータバインディング-データソースの変更をキャンセルする方法

  5. 5

    動的オブジェクトの双方向データバインディング

  6. 6

    オブジェクトとの双方向データバインディング?

  7. 7

    データバインディングに関するnullオブジェクト参照

  8. 8

    オブジェクトのKVPへのデータバインディング、オブジェクトはプロパティをリアルタイムで使用または更新できませんか?

  9. 9

    オブジェクトバインディングで最初に0を失う

  10. 10

    'オブジェクト'タイプへのDotvvmランタイムバインディング

  11. 11

    Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

  12. 12

    ngModelのオブジェクトキーに対するngForのオブジェクトプロパティの双方向データバインディング

  13. 13

    WebAPIバインディングはAngularのオブジェクトオブジェクトです

  14. 14

    TypescriptIonicのデータバインディングにオブジェクト関数を公開する

  15. 15

    XAMLデータバインディングシングルトンのようなMVVMオブジェクト

  16. 16

    コンポーネント間のオブジェクトの双方向データバインディング

  17. 17

    有効な参照であるが空の/新しいオブジェクトへの双方向バインディングを設定する方法

  18. 18

    Spring部分更新オブジェクトデータバインディング

  19. 19

    Rでのオブジェクト名へのアクセスとバインディング

  20. 20

    オブジェクトバインディングパターンの残りのプロパティを最後にする必要があります

  21. 21

    MainWindowクラス内で作成されたオブジェクトへのWPFバインディング

  22. 22

    C#WPF-オブジェクトリストのプロパティへのデータバインディング

  23. 23

    バインディングオブジェクトの削除/削除

  24. 24

    LiveDataオブジェクトの特定の属性の双方向データバインディング

  25. 25

    ボディ属性からのオブジェクトへの再帰的バインディング

  26. 26

    Eclipse JfaceMVCの複数のデータバインディングオブジェクト

  27. 27

    Vue.js:v-forでオブジェクトを使用した双方向データバインディング

  28. 28

    Spring Webflowバインディング:Converter-java.lang.IllegalArgumentException:各コンバーターオブジェクトは、Converter ...インターフェイスの1つを実装する必要があります

  29. 29

    双方向のデータバインディングなしでAngular2の「選択」から選択したオブジェクトを取得する方法

ホットタグ

アーカイブ