1

テキスト プロパティをビュー モデル プロパティにバインドするたびに

<TextBlock Text="{Binding SomeExampleText}"/>

デザイナーでは、実行時にテキストが表示される場所に何も表示されません。x:Bind を使用する場合:

<TextBlock Text="{x:Bind ViewModel.SomeExampleText}"/>

デザイナーに「ViewModel.SomeExampleText」が表示されますが、スペースが足りないために完全な長さが表示されない場合があります(バインディングパスが長すぎる場合)。

上記のようにパスをバインドするか、何もしないのではなく、プレビュー用にカスタム テキストをデザイナーに表示する方法はありますか?

4

2 に答える 2

1

設計時専用のビュー モデルを作成する方法があります。最も簡単なアプローチはおそらくこれです:

<TextBlock Text="{x:Bind ViewModel.SomeExampleText, FallbackValue='Hello!'}"/>

これは、デザイナーの文字列「Hello」を と の両方で示していBindingますx:Bind

Binding設計時のデータ コンテキストを次のように設定できます。

<Page
    ...
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:viewModels="using:MyNameSpace.ViewModels"
    d:DataContext="{d:DesignInstance Type=viewModels:DesignTimeViewModel, IsDesignTimeCreatable=True}"
    mc:Ignorable="d">

ランタイム ビュー モデルとのDesignTimeViewModel特定の関係は必要ありません。同じ名前の適切なプロパティのみが必要です。コレクションにバインドしている場合は、おそらくこれが最善の策です。

于 2016-01-21T14:01:55.797 に答える