微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wpf – 将普通属性转换为依赖属性

我有一个控件,我用于我的新应用程序.此控件具有常规属性.

Public Property Value() As String
    Get
        If AutoCompleteTextBox.SearchText Is nothing Then
            Return String.Empty
        Else
            Return AutoCompleteTextBox.SearchText.ToString.Trim
        End If
    End Get
    Set(value As String)
        AutoCompleteTextBox.SearchText = value
    End Set
End Property

编辑:

所以,经过多次尝试,我终于到了这个阶段.

Public Shared ValueProperty As DependencyProperty = DependencyProperty.Register("Value",GetType(String),GetType(autocompletebox))
Public Property Value() As String
    Get
        Return Me.GetValue(ValueProperty).ToString
    End Get
    Set(value As String)
        Me.SetValue(ValueProperty,value)
    End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged

这是依赖属性.此属性仍然没有约束力.输出窗口中没有显示绑定错误.

Text="{Binding RelativeSource={RelativeSource Self},Path=Value,Mode=TwoWay}"

这是我的绑定方法.我不知道我还能做什么.至少如果出现错误,我本可以找到一些东西.没有任何错误,我只是一个没头的鸡.

解决方法

有关所有依赖性基础知识,请参阅以下URL
http://www.wpftutorial.net/dependencyproperties.html

基本上,您可以通过提供FrameworkPropertyMetadata来获取依赖项属性属性更改事件.

new FrameworkPropertyMetadata( [Default Value],OnCurrentTimePropertyChanged);

您可以在事件处理程序中取回目标控件(DependencyObject)并在那里实现您的逻辑

private static void OnCurrentTimePropertyChanged(DependencyObject source,DependencyPropertyChangedEventArgs e)
{
    AutoCompleteTextBox control = source as AutoCompleteTextBox;
    string time = (string)e.NewValue;
    // Put some update logic here...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐