0

カスタム xaml スタイルを使用したカスタム コントロールは次のとおりです。

using System.Windows.Controls;

namespace MyControls
{
    public class CustomTextBox : TextBox
    {
    }
}

<Style TargetType="controls:CustomTextBox">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="controls:CustomTextBox">
                <StackPanel>
                    <TextBlock Text="" />
                    <TextBox Text="{TemplateBinding Text}" />
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

また、使用すると、ハンドラーは何らかの理由でTextChanged更新されたフィールドを取得しません。Text

<controls:CustomTextBox x:Name="ControlInstance"
                        TextChanged="OnTextChanged"
                        InputScope="EmailNameOrAddress" />

private void OnTextChanged(object sender, TextChangedEventArgs e)
{
    // ControlInstance.Text is always ""!
}
4

1 に答える 1

1

Textこれは、テンプレートの内側の TextBoxのプロパティを変更しているためですがText、CustomTextBox 自体のプロパティは変更していないためです。

カスタム コントロールの作成については、http://www.geekchamp.com/articles/creating-a-wp7-custom-control-in-7-stepsをご覧になることをお勧めします。

于 2013-03-28T21:26:59.570 に答える