0

オブジェクト プロパティにバインドされたテキスト ボックスがあります。ユーザーがそのコントロールを編集し、変更を適用したくない場合、プロパティへの変更を元に戻すにはどうすればよいですか?

編集する前に古い値を保存し、ユーザーが編集をキャンセルした場合にそれらを復元できることを知っています。ただし、このソリューションでは、バインドされたすべてのプロパティを手動でリセットする必要があるため、データ バインドの利点のほとんどが失われます。

ここにXAMLがあります

<TextBox Text="{Binding BindingText, Mode=TwoWay}"/>

PageLoaded ハンドラーのコード:

DataContext = App.Binder; // Set data context for the page
4

1 に答える 1

0

一方向のデータバインディングを使用することもできますが、それは私が思う目的には役立ちません。

また、開発者が余分なコード行を手動で実行する必要がないように、データバインディングが提供されていることも忘れないでください。一般的なタスクを自動化するためにあります。その手動制御を行うには、手動で行う必要があります。これがあなたが望む答えではないことはわかっていますが、それがその方法です。


これで、追加のプロパティ/変数と 2 つの一方向バインディングを使用してセットアップできると思います。

このオブジェクト プロパティをその変数にバインドします。つまり、このプロパティが変更されると、実際のオブジェクト プロパティが変更されます (一方向のみ)。

テキスト ボックスはオブジェクト プロパティ (一方向) にバインドされているため、オブジェクト プロパティが変更されると、テキスト ボックスに反映されます。

そして、テキストボックスに従って一時変数の値を変更する送信ボタンを使用します。

tempVar ----> オブジェクトのプロパティ オブジェクトのプロパティ ----> テキストボックス テキストボックスは tempVar を手動で変更します。

しかし、それはまだ直接的な答えではありませんが、回避策です(データバインディングを使用)。

于 2012-11-19T04:50:59.820 に答える