0

CLRオブジェクトへのデータバインディングをセットアップし、Silverlightコントロール/ページを設計できるBlendの機能が大好きです。私の問題は、DataTemplateとして使用されるユーザーコントロールの作成に関するものです。それはすべてBlendでうまく機能しますが、設計時のみです。問題は、Blendでコントロールを編集していて、テキストボックスをCLRオブジェクトのプロパティにバインドすると、次のようになることです。

Text="{Binding Mode=OneWay, Path=TestAccount.Name, Source={StaticResource TestDataDS}}"

しかし、アプリを実行する準備ができて、DataTemplate内でそのユーザーコントロールを使用してリストボックスなどを作成する場合は、次のようにする必要があります。

Text="{Binding Mode=OneWay, Path=Name}"

Belndでデザインするために気の利いたバインディングを使用するにはどうすればよいですか?プロジェクトを実行する準備ができたら、これらのバインディングすべてに触れたり、検索したり、置き換えたりする必要はありませんか?設計時と実行時の両方で機能するアプローチを探しています。

ありがとう、

4

2 に答える 2

0

ブレンド 2 を使用している場合は、依存性注入を使用するJonas Follesoe の設計時/実行時のブログ投稿を参照することをお勧めします。

幸運にもBlend 3を使用している場合は、これをチェックしてください

Blend でバインディングを設定する場合、「Explicit Data Context」タブは使用できますか?

于 2009-07-16T09:19:33.000 に答える
0

Expression Blend で CLR オブジェクトへのデータ バインディングを作成するために、[Create Data Binding] ダイアログの [DataField] タブを使用する必要はありません。実際、このようにすることは非常にまれです。

カスタム パス式を使用するのが最も一般的な方法です。[カスタム パス式を使用する] チェック ボックスをオンにして、バインドするプロパティの名前を入力するだけです。データ コンテキストを指定しない場合、データ バインディングは、たまたま DataContext であるオブジェクトに指定したパスに解決されます。

設計時の DataContext を設定する場合は、d:DataContext プロパティを設定して、xmlns:d="..." を適切に定義してください。

于 2009-05-06T01:14:12.107 に答える