1

WP7 Silverlight は初めてで、簡単な問題があります。

DataTemplate を持つ ListBox があり、Text="{Binding JobLocation}" でデータをバインドして表示できます。これは正常に機能します。

また、 Text="{Binding JobLocation}" を使用して JobLocation にバインドできる UserControl もあります。

私の質問はこれです。表示する前に JobLocation でいくつかの作業を行う必要があるため、次のように変数に保存したいと思います:-

Dim jobLocation as string ="{Binding JobLocation}"
jobLocation = // do the work on it
txtJobLocation.Text = jobLocation

これは UserControl コードで行われます。

助けてください、本当にこれにこだわっています!

4

2 に答える 2

0

うまくいきました!

ユーザーコントロールはその親からデータコンテキストを継承するため、単に実行する必要がありました

dim job as Database.Model.Job = DataContext

dim JobLocation as string = job.JobLocation

これが他の誰かに役立つことを願っています!

于 2012-12-03T12:31:12.220 に答える
0

コントロールからバインドされた値を取得して操作し、新しい値をコントロールに適用するのではなく、基になるオブジェクトの値を操作する必要があります (バインディング フレームワークにコントロールを更新させます)。基になるオブジェクトを変更したくない場合は、必要な作業を ValueConverter で行い、それをバインディングに適用できます。

ValueConverter オプションは、実行している作業が些細でプレゼンテーション的な性質のものである場合にのみ適切です。それ以外の場合は、バインディングに使用する別のオブジェクトをセットアップし、そこで作業を行うことをお勧めします。別のオブジェクトを使用すると、ソース データ オブジェクトが変更されたときにそれを更新するメカニズムについて考える必要があります (適切/必要な場合)。

于 2012-12-02T22:33:26.570 に答える