WPF MVVM中INotifyPropertyChange实现问题:修改值后View不更新
WPF绑定同步异常求助
我最近做WPF项目时碰到个闹心的问题:ViewModel里设置的默认值能正常显示在View上,但只要修改任何属性值,View完全不会同步更新。我猜这肯定和INotifyPropertyChanged接口的实现有关,已经熬了快10小时搜各种教程、帖子排查,还是没找到问题根源,希望大家能帮忙看看我的代码,找出问题所在。
我的View代码片段
<UserControl x:Class="Diplomarbeit.Views.TasteView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> <!-- 原代码内容被截断,麻烦补充完整的View布局以及绑定逻辑,另外如果能提供ViewModel的代码就更好了,特别是`INotifyPropertyChanged`的实现部分 --> </UserControl>
另外我自己梳理了几个可能的排查方向,也供大家参考:
- 检查ViewModel是否正确实现了
INotifyPropertyChanged接口,属性变更时有没有调用OnPropertyChanged方法 - 确认View的DataContext是否正确绑定到了ViewModel实例,有没有出现实例被重新创建的情况
- 检查XAML中的绑定路径是否正确,有没有拼写错误,或者是否误设置了单向绑定之外的模式
- 可以尝试开启WPF绑定调试日志,在输出窗口查看有没有绑定错误提示
内容的提问来源于stack exchange,提问作者David Aichinger
相关产品推荐
相关产品推荐

