15

私は経験豊富なC#開発者ですが、WPFの初心者です。ウェブ検索では答えが見つからないという基本的な質問(と思います)。これが単純化されたユースケースです...

WPFTextBlockに文字列を表示したい。そこで、XAMLコントロールの背後にあるコードでC#コードを記述します...

public class MyCoolControl : UserControl
{
   public void InitializeMyCoolControl()
   {
      this.DataContext = "SomeStringOnlyAvailableAtRuntime"; // Perhaps from a database or something...
   }
}

そして、XAMLを次のように設定します。

<UserControl ... snip...>
   <!-- Bind the textblock to whatever's in the DataContext -->
   <TextBlock Text="{Binding}"></TextBlock>
</UserControl>

アプリケーションを実行すると、値「SomeStringOnlyAvailableAtRuntime」が表示されます。ただし、VisualStudio2008のXAMLDesignerを使用したデザイン時には何も表示されません。

デザイン時にテキストブロックのプレースホルダー値(何か)を確認するにはどうすればよいですか?

ありがとう!

-マイク

4

5 に答える 5

24

FallbackValueユーザー コントロールを設計する際に何かを確認するために、バインディングでよく使用します。例えば:

<TextBlock Text={Binding Path=AverageValue, FallbackValue=99.99} />

ただし、は設計時に適用されるだけではないため、他の理由で実行時FallbackValueに使用したい場合には、これは適切ではない可能性があります。FallbackValue

于 2009-03-30T01:16:46.107 に答える
0

このシナリオでは、MultiValueConverter または ViewModel オブジェクトにオブジェクトの読み込みと依存関係プロパティの更新を処理させることが最善の選択肢ではないでしょうか?

于 2010-03-05T09:34:12.813 に答える
0

Visual Studio のエディターでこれを行う方法はわかりませんが、Expression Blend でこれを行うことができます。

これを達成する方法を説明する記事があります

私は、MS が Blend と Visual Studio の機能を一緒にマージすることを願っています。なぜなら、1 つのパッケージで 1 つのことを実行し、別のパッケージで別のことを実行するのは少しばかげているからです。特に彼らが同じ会社の場合。

于 2009-03-29T21:21:42.477 に答える