3

Binding.FallbackValueWinRT で動作をエミュレートする回避策はありますか?

4

1 に答える 1

1

添付プロパティで実行できます。WinRT の多くの制限は、WinRT で修正できることがわかりました。

私はコードを持っていませんが、これはどうですか:

<TextBox local:fallbackProperty="Text" local:fallbackPropertyValue="<NO BINDING SET"
  Text="{Binding random}" />

添付されたプロパティ ハンドラーで、リフレクションを介して fallbackProperty をチェックアウトし、プロパティの変更をサブスクライブします。

リスナー = DependencyPropertyChangedListener.Create(this.myTextBox, "Text"); listener.ValueChanged += listener_ValueChanged;

0/null を受け取った場合は、Text プロパティから BINDING を交換できます。そして、それを fallbackPropertyValue に置き換えます。実際のバインドを追跡し、時間になったら元に戻すようにする必要があります。

このソリューションの制限は、UI 要素ごとに 1 つの fallbackValue しか使用できないことです。しかし、それは「フォールバック値のリスト」に簡単に拡張できます。構文だけでは、もはやそれほど便利ではありません。

残念なことに、WPF にはほとんどすべての機能が備わっており、最小限のハックが必要でした。

于 2013-03-29T10:30:51.350 に答える