C#customcontrol无法更新,但已触发OnPropertyChanged

C#customcontrol无法更新,但已触发OnPropertyChanged,c#,data-binding,wpf-controls,C#,Data Binding,Wpf Controls,//这是我的CustomControl的代码 我不知道为什么属性文本会被更改,OnPropertyChange(“文本”)也会被成功触发,但在具有customcontrol调用Mystatusbar的主窗口中,此customcontrol中的文本无法更新,并保持背景黑色(我设置了它) 命名空间外部控件 { 公共部分类MyStatusBar:UserControl,INotifyPropertyChanged { 公共MyStatusBar() { 初始化组件(); } 专用字符串文本=”状态栏"

//这是我的CustomControl的代码

我不知道为什么属性文本会被更改,OnPropertyChange(“文本”)也会被成功触发,但在具有customcontrol调用Mystatusbar的主窗口中,此customcontrol中的文本无法更新,并保持背景黑色(我设置了它)

命名空间外部控件
{
公共部分类MyStatusBar:UserControl,INotifyPropertyChanged
{
公共MyStatusBar()
{
初始化组件();
}
专用字符串文本=”状态栏";
公共事件属性更改事件处理程序属性更改;
/// 
/// 状态栏显示的正文的入口
/// 
公共字符串文本
{
得到
{
返回文本;
}
设置
{
this.text=值;
OnPropertyChanged(“文本”);
}
}
私有void OnPropertyChanged(字符串propertyName)
{
PropertyChangedEventHandler propertyChangedEvent=PropertyChanged;
if(propertyChangedEvent!=null)
{
propertyChangedEvent(此,新
PropertyChangedEventArgs(propertyName));
}
}
私有void\u StatusBar\u MouseEnter(对象发送器,MouseEventArgs e)
{
Text=DateTime.Now.ToLongTimeString();
}
私有void UserControl\u MouseEnter(对象发送方,MouseEventArgs e)
{
Text=DateTime.Now.ToLongTimeString();
}
}
}
//这是我的主窗口代码
公共部分类主窗口:窗口
{        
公共主窗口()
{
初始化组件();
}        
}

INotifyPropertyChanged
不属于自定义控件。它属于(视图)模型

对于具有要绑定到的属性的自定义控件,请使用。

Kwinten是正确的。 另一方面,如果您只是想让它工作,请尝试使用以下代码编辑您的用户控件构造函数:

public MyStatusBar()
{
    InitializeComponent();
    DataContext = this;
}
public MyStatusBar()
{
    InitializeComponent();
    DataContext = this;
}