C# INotifyPropertyChanged后更新控件

C# INotifyPropertyChanged后更新控件,c#,wpf,mvvm,inotifypropertychanged,C#,Wpf,Mvvm,Inotifypropertychanged,我已经检查了堆栈上的现有答案,但仍然无法获得正确答案: 我认为: <TextBlock Margin="8,0,0,0" FontSize="48" Text="{Binding YearsToSave}" d:LayoutOverrides="Width"> ... <SurfaceControls:SurfaceSlider

我已经检查了堆栈上的现有答案,但仍然无法获得正确答案:

我认为:

<TextBlock Margin="8,0,0,0"

                        FontSize="48"
                        Text="{Binding YearsToSave}"
                        d:LayoutOverrides="Width">
...
  <SurfaceControls:SurfaceSlider x:Name="slider" Grid.Row="8"
                                Grid.Column="2"
                                VerticalAlignment="Bottom"
                                Maximum="{Binding YearsToSaveMaxValue}"
                                Minimum="{Binding YearsToSaveMinValue}"
                                Value="{Binding YearsToSave}"
                                d:LayoutOverrides="Width" />

属性更改事件正确激发并获取值,正确更新Questions.NumberOfYears,但更改不会传播回视图

您的
OnPropertyChanged
方法未引发
PropertyChanged
事件

按如下方式更新您的方法:

protected void OnPropertyChanged(string name)
{
    PropertyChangedEventHandler handler = PropertyChanged;
    if (handler != null)
    {
        switch (name)
        {
            case "YearsToSave":
                Questions.NumberOfYears = YearsToSave;
                handler(this, new PropertyChangedEventArgs(name));
                break;
        }
    }
}

您的
OnPropertyChanged
方法未引发
PropertyChanged
事件

按如下方式更新您的方法:

protected void OnPropertyChanged(string name)
{
    PropertyChangedEventHandler handler = PropertyChanged;
    if (handler != null)
    {
        switch (name)
        {
            case "YearsToSave":
                Questions.NumberOfYears = YearsToSave;
                handler(this, new PropertyChangedEventArgs(name));
                break;
        }
    }
}

另一个选项是使用NotifyPropertyWeaver项目

我喜欢它,因为它会自动为您安排活动! (有点黑魔法,但很方便)


另一个选项是使用NotifyPropertyWeaver项目

我喜欢它,因为它会自动为您安排活动! (有点黑魔法,但很方便)


完全正确且令人尴尬。完全正确且令人尴尬。处理程序(此,新属性ChangedEventArgs(名称))?好的。谢谢你指出这一点。代码现在已更正?好的。谢谢你指出这一点。代码现在已更正。此特定项目不再积极开发:功能已转换为Fody框架的插件。此特定项目不再积极开发:功能已转换为Fody框架的插件。