You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF MVVM框架下修改ListViewItem名称仅切换视图才更新问题

问题根因

  • ObservableCollection<T> 仅会通知集合本身的结构变更(增、删、移动元素等),集合内部元素的属性变更需要元素类自行触发属性变更通知才能让UI实时响应。
  • 你的MasterModel虽然继承了ObservableObject(已经内置了INotifyPropertyChanged实现),但绑定到UI显示的Name属性使用了无通知的自动实现属性,修改属性值时没有发送PropertyChanged事件,UI无法感知到变更,只有视图重新加载时才会读取最新的属性值,因此出现切换UserControl才刷新的现象。

解决方法

修改MasterModel中的Name属性,改为带属性变更通知的实现:

// 替换原来的 public string Name { get; set; }
private string _name;
public string Name
{
    get => _name;
    set 
    { 
        _name = value; 
        OnPropertyChanged();
    }
}

同时调整SetName方法,通过属性赋值触发通知:

public void SetName(string name)
{
    Name = name;
}

如果后续需要动态修改MasterModel的其他属性(如Host、Port等)并实时同步到UI,也需要按照同样的格式修改对应属性的实现。

内容的提问来源于stack exchange,提问作者Ivan Raul Sanchez Diaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:06:02