加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:00:49 所属栏目:百科 来源:网络整理
导读:我有一个控件,我用于我的新应用程序.此控件具有常规属性. 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(v
我有一个控件,我用于我的新应用程序.此控件具有常规属性.

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...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读