UserControl Dependency属性不起作用

时间:2015-11-06 08:36:04

标签: c# wpf user-controls

我有我的UserControl。我想设置Dependency属性,但我不能。

TextBoxExtended.cs

public partial class TextBoxExtended : UserControl
    {
        public static readonly DependencyProperty MyTextPropertyProperty =
        DependencyProperty.Register("MyTextProperty", typeof(string), typeof(TextBoxExtended), new UIPropertyMetadata(String.Empty));

        public string MyTextProperty
        {
            get { return (string)GetValue(MyTextPropertyProperty); }
            set { SetValue(MyTextPropertyProperty, value); }
        }

TextBoxExtended.xaml

<TextBox x:Name="tbMain" Text="{Binding MyTextProperty}"

MainWindow.xaml

<local:TextBoxExtended x:Name="TextBoxSearch" Height="30" Margin="83,38,193,285" MyTextProperty="MyTextProperty"/>

我需要事件textchange,我使用此代码

<local:TextBoxExtended x:Name="TextBoxSearch" Height="30" Margin="83,38,193,285" MyTextProperty="{Binding MyText, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>

但我需要在引入每个字符后进行更改

2 个答案:

答案 0 :(得分:0)

您必须在TextBoxExtended.xaml中设置Binding的源对象,例如

<TextBox x:Name="tbMain"
    Text="{Binding MyTextProperty,
                   RelativeSource={RelativeSource AncestorType=UserControl}}" />

答案 1 :(得分:-1)

在TextBox的绑定中使用ElementName。

        <StackPanel>
            <TextBox Text="{Binding MyText, ElementName=TextBoxSearch}" ></TextBox>
            <local:TextBoxExtended x:Name="TextBoxSearch" Height="30"
                                   MyText="Hello World!!!" />
        </StackPanel>