1

最初のページの読み込み時に、フォームが新しいレコードを入力できるように設定しています。一部のカスタムデータバリデーターでは、バインディングをそれ自体に設定しました。私の質問は、デフォルトのテキストを何かに設定するにはどうすればよいですか?

<TextBox>
    <TextBox.Text>
        <Binding RelativeSource="{RelativeSource Self}"
                 Path="Text"
                 UpdateSourceTrigger="LostFocus" >
            <Binding.ValidationRules>
                <validators:MyCustomValidators />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>
4

1 に答える 1

4

LoadedまたはInitializedイベントにイベントハンドラーを追加し、そこにテキストを設定します。

<TextBox Loaded="TextBox_Loaded_1">
    <TextBox.Text>
        <Binding RelativeSource="{RelativeSource Self}"
                 Path="Text"
                 UpdateSourceTrigger="LostFocus" >
            <Binding.ValidationRules>
                <validators:MyCustomValidators />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

そして、背後にあるコードで:

private void TextBox_Loaded_1(object sender, RoutedEventArgs e)
{
    ((TextBox)sender).Text = "Default text";
}

編集:

XAMLのみのソリューション:

<TextBox>
    <TextBox.Style>
        <Style TargetType="TextBox">
            <Setter Property="Text" Value="Default text" />
        </Style>
    </TextBox.Style>
    <TextBox.Text>
        <Binding RelativeSource="{RelativeSource Self}"
                 Path="Text"
                 UpdateSourceTrigger="LostFocus" >
            <Binding.ValidationRules>
                <validators:MyCustomValidators />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>
于 2012-11-15T21:13:57.073 に答える