当 ObservableCollection 中的模型属性发生更改时更新 UI?

2024-02-10

我有一个视图,其中包含从网络服务获取的一组图像 我在此类列表中收到它们:

 public class ImageModel 
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string imageUrl { get; set; }
    }

在每个图像下我都会显示一个投票按钮,因此我向上面的模型添加了另一个 bool 属性:

 public bool UpVoted { get; set; }

the ListView显示这些图像绑定到ObservableCollection<ImageModel >,我想通过转换值的转换器来更改投票图标UpVoted到相应的图标,当用户单击投票图标时:命令执行此方法:

    private void OnVoting(ImageModel image)
    {
        Images.Single(x => x.id == image.id).UpVoted = !image.UpVoted;
    }

问题是 UI 没有更新,为了确保我理解问题,我将模型转换为视图模型并对UpVoted属性(我正在使用 MVVM 灯光库)

bool upVoted;
        public bool UpVoted
        {
            get { return upVoted; }
            set
            {
                Set(ref upVoted, value);
            }
        }

现在它可以工作了, 所以我需要绑定UpVoted到 UI,因此每当更改时都会更新


第一的 您的模型类必须继承自 MvxNotifyPropertyChanged

public class ImageModel : MvxNotifyPropertyChanged
    {
        public int Id { get; set; }
        public string Name { get; set; }
        private bool upVoted ;
        public bool UpVoted 
        {
            get { return upVoted ; }
            set { upVoted = value; RaisePropertyChanged(() => UpVoted ); }
        }
    }

然后与MvxValueConverter你准备好了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 ObservableCollection 中的模型属性发生更改时更新 UI? 的相关文章

随机推荐

  • pandas 按日期和年份分组并汇总金额

    我有这样的熊猫数据框 d dollar amount 200 25 350 00 120 00 400 50 1231 25 700 00 350 00 200 25 2340 00 date 22 01 2010 22 01 2010 2
  • 调试时如何跳出while循环

    在 Eclipse 中调试期间 我的代码进入了 while 循环 我不想循环直到满足条件 所以请告诉我如何在调试期间退出 while 循环 我看到 F7 在调试菜单下被禁用 请参阅此处的屏幕截图 You can select the lin
  • javascript 函数 btoa 的 C# 版本

    我需要将一些内容从 js 重新编码为 c 利用 js 中的 btoa 方法对一串 unicode 字符将它们转换为 base64 但是 据我所知 javascrpt 使用的编码与 c 中可用的所有编码不同 我需要编码完全相同 并且不会在这些
  • 如何在perl中验证数字?

    我知道有一个图书馆可以做到这一点 使用 Scalar Util qw looks like number 但我想使用 perl 正则表达式来做到这一点 我希望它适用于双数 而不仅仅是整数 所以我想要比这更好的东西 var d thanks
  • 从 OKHTTP 下载二进制文件

    我在我的 Android 应用程序中使用 OKHTTP 客户端进行网络连接 This https stackoverflow com questions 25367888 upload binary file with okhttp fro
  • Xpath获取上面的元素

    假设我有这样的结构 div class a div class b span Text Example span div div 在 xpath 中 我想检索属性 attribute 的值 因为我里面有文本 文本示例 如果我使用这个 xpa
  • 如何在VBA中实现消失动画?

    我正在尝试在 VBA 过程中测试形状上的动画效果 我已经实现了一个目标 即在主序列 定义在哪个位置Timeline 但我无法创建消失的动画 我在代码的开头检查了一些已经存在的 并且 EffectType 似乎返回与相关出现的动画相同的值 因
  • 实现永不过期的 OAuth 刷新令牌

    在 OAuth 2 的上下文中 如何处理refresh token过期 还是缺少 我使用 JSON Web 令牌 JWT 作为access token生命周期较短 20 分钟后过期 据我了解 这意味着我不必存储access token 仅验
  • 带标头的 post 请求中出现错误 411(需要长度),但标头具有 Content-Length。库卷曲

    我使用这个选项 curl easy setopt curl CURLOPT URL urlUpload curl easy setopt curl CURLOPT ERRORBUFFER errorBuffer curl easy seto
  • SQLite 自动增量不起作用

    好吧 这不是垃圾邮件 它应该很简单 我不知道为什么它不起作用 这是我的代码 gamesdatabase openOrCreateDatabase GamesDatabase MODE PRIVATE null gamesdatabase e
  • 获取数组中的所有非唯一值(即:重复/多次出现)

    我需要检查 JavaScript 数组以查看是否存在重复值 做到这一点最简单的方法是什么 我只需要找到重复的值是什么 我实际上不需要它们的索引或它们重复了多少次 我知道我可以循环遍历数组并检查所有其他值是否匹配 但似乎应该有一种更简单的方法
  • 保存和加载数据“MVVM”方式?

    我目前正在使用 Telerik 提供的一些控件开发一个 C WPF 项目 并且我尊重 MVVM 模式 包含数据的模型 将数据呈现给 View 的 ViewModel 显示数据的视图 当然 某些模型可以重用并显示在多个视图中 在我的例子中 数
  • ChangeDetectionStrategy.OnPush 的行为不符合我的预期

    我正在尝试熟悉 Angular 2ChangeDetectionStrategy OnPush性能提升 如所解释的here https blog thoughtram io angular 2016 02 22 angular 2 chan
  • 在执行之前使 CMake 打印命令

    我正在开发一个在 Linux 上使用 CMake 构建的大型 C 项目 CMake 运行正常 在模块和应用程序树中生成大量 Makefile 运行 GNUmake导致链接器错误 我怎样才能得到make在运行之前打印出确切的命令 d 选项不打
  • 使用 JPA 和 Google App Engine 更新查询

    我正在尝试更新我的实体类 但我得到 javax persistence PersistenceException Only select and delete statements are supported 当我不使用 Google 应用
  • Extjs:使用提交表单上传文件

    我正在尝试使用 ExtJs 和 Spring 上传文件 excel 但没有成功 所以我希望你能帮助我 在面板中 我有一个按钮 文件上传字段 我可以通过该按钮选择一个要上传的文件 xtype fileuploadfield buttonOnl
  • 我可以对不同的对象类型使用一个 TypeConverter 吗?

    到目前为止存储在房间数据库我一直在为每个类使用类型转换器 像这样 SerializedName sidebar Expose TypeConverters SidebarConverter class private Sidebar sid
  • 如何让 filepicker 和turbolinks 很好地协同工作?

    我使用 Rails 3 2 turbolinks 和 Filepicker io 开发一个 Web 应用程序 我像这样加载 API 密钥 coffeescript 我认为 document ready就足够了 因为文件选择器脚本在第一个请求
  • 您可以定义自己的 HTML 元素属性吗?

    我想知道您是否可以在 HTML 中定义自己的属性 例如 在 HTML div 中有一系列属性 例如style title class等等 您可以自己编写并添加自己的内容 同时保持语法正确吗 例如 div class example div
  • 当 ObservableCollection 中的模型属性发生更改时更新 UI?

    我有一个视图 其中包含从网络服务获取的一组图像 我在此类列表中收到它们 public class ImageModel public int Id get set public string Name get set public stri