PropertyChanged 未在用户控件中更新 UI - 通用应用

PropertyChanged not updating UI in user control - universal app

在我的应用程序中,我有一个具有以下 XAML 段的用户控件

<StackPanel x:Name="stackPanel" Style="{StaticResource sPanel1}" >
    <ToggleButton Style="{StaticResource tButton}">
        <TextBlock Text="{Binding Note, Mode=TwoWay}" Style="{StaticResource textBlockStyle}"/>
    </ToggleButton>
</StackPanel>

TextBlock 中绑定的 'Note' 在我的模型中定义如下:

private string m_Note;
public string Note
{
    get { return m_Note; }
    set
    {
        m_Note = value;
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("m_Note"));
    }
}

当来自我的用户控件代码隐藏的事件处理程序触发事件时,'Note' 属性 更新:

public void cBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    cm.Note = cBox.SelectedItem.ToString();
}

但是每次我 select ComboBox 中的项目时 UI 都不会更新。我知道绑定是正确的,因为当我在模型的构造函数中初始化 'Note' 时,它确实在 UI 中显示了它的值,而且我知道 'Note' 获得了 cBox.SelectedItem 值因为我已经遍历了代码。我错过了什么?

View中的绑定路径和方式正确。这就是为什么您在初始化时获得值的原因。然而,您的绑定 属性 并未在 属性 上引发正确的 属性 名称更改。 UI 正在监听 Note 但你正在加注 m_Note

您需要更新到

private string m_Note;
public string Note
{
    get { return m_Note; }
    set
    {
        m_Note = value;
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("Note"));
    }
}