1

TextBox を継承する WatermarkTextBox があり、メソッド textboxsearch_TextChanged から返された検索を表示するためにリストビューで呼び出される x:Name="TestASearch" があります。

        <controls:WatermarkTextBox x:Name="TestASearch"  Grid.Column="2" Grid.Row="0"
                Margin="10,61,0,10" SelectAllOnGotFocus="True"  Background="White"
                TextChanged="textboxsearch_TextChanged">
                <controls:WatermarkTextBox.Watermark>
                    <TextBlock  FontStyle="Italic"   Text="Enter search text…" Width="116"/>
                </controls:WatermarkTextBox.Watermark>

WatermarkTextBox クラス

    public WatermarkTextBox()
    {
        FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(typeof(WatermarkTextBox), new FrameworkPropertyMetadata(typeof(WatermarkTextBox)));
    }

ここで、別の x:Name =TestBSearch が必要で、 TextChanged="textboxsearch_TextChanged" を使用したいことを除いて、同じ概念を使用したいと思います。

            <controls:WatermarkTextBox x:Name="TestBSearch"  Grid.Column="2" Grid.Row="0"
                Margin="10,61,0,10" SelectAllOnGotFocus="True"  Background="White"
                TextChanged="textboxsearch_TextChanged">
                <controls:WatermarkTextBox.Watermark>
                    <TextBlock  FontStyle="Italic"   Text="Enter search text…" Width="116"/>
                </controls:WatermarkTextBox.Watermark>
            </controls:WatermarkTextBox>

これを試すと、「PropertyMetadata is already registered for type 'WatermarkTextBox'.」というエラーが表示されます。同じコードを再利用するにはどうすればよいですか?

ありがとう

4

1 に答える 1