首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UWP - MVVM -计算的比例值更改时不更新的值

UWP (Universal Windows Platform) 是微软推出的一种应用程序开发框架,它允许开发人员使用通用的代码库创建适用于多种设备的应用程序,包括桌面、移动、Xbox、Surface Hub 等。UWP 提供了一种统一的开发模型,使开发人员能够轻松地构建跨平台的应用程序。

MVVM (Model-View-ViewModel) 是一种软件架构模式,用于将用户界面 (View)、业务逻辑 (ViewModel) 和数据模型 (Model) 分离。MVVM 的核心思想是通过数据绑定实现视图和视图模型之间的解耦,从而实现更好的代码可维护性和可测试性。

在 UWP 应用程序中,MVVM 可以帮助开发人员更好地组织代码,提高开发效率和代码质量。通过将界面逻辑与业务逻辑分离,MVVM 可以使开发人员更专注于业务逻辑的实现,同时也方便了界面的设计和修改。

当计算的比例值在 MVVM 模式中发生变化时,不会自动更新相关的值。这是因为 MVVM 模式中的数据绑定是单向的,默认情况下只会将 ViewModel 中的数据更新到 View 中,而不会将 View 中的数据反向更新到 ViewModel。如果希望在计算的比例值发生变化时更新其他相关的值,可以通过以下几种方式实现:

  1. 使用双向绑定:在数据绑定时,将绑定属性的 Mode 设置为 TwoWay,这样当 View 中的数据发生变化时,会自动更新到 ViewModel 中。例如,在 XAML 中可以使用以下代码实现双向绑定:
代码语言:txt
复制
<TextBox Text="{Binding ScaleValue, Mode=TwoWay}" />
  1. 手动更新:在计算的比例值发生变化时,手动更新其他相关的值。可以在 ViewModel 中添加一个方法,用于更新其他相关的值。例如:
代码语言:txt
复制
private double _scaleValue;
public double ScaleValue
{
    get { return _scaleValue; }
    set
    {
        _scaleValue = value;
        OnPropertyChanged(nameof(ScaleValue));
        UpdateOtherValues(); // 手动更新其他相关的值
    }
}
  1. 使用事件或消息机制:当计算的比例值发生变化时,通过事件或消息机制通知其他相关的组件或对象进行更新。可以使用第三方库如 Prism、MVVM Light 等来实现事件或消息的发布和订阅。

在 UWP 开发中,可以使用腾讯云的相关产品来支持应用程序的开发和部署。以下是一些推荐的腾讯云产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供可扩展的云服务器实例,用于部署和运行 UWP 应用程序。详情请参考:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,用于存储 UWP 应用程序中的文件和数据。详情请参考:腾讯云对象存储
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务,用于存储和管理 UWP 应用程序的数据。详情请参考:腾讯云数据库

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MVVM中实现 INotifyPropertyChanged 的 4 种方法

在 MVVM 框架中,它确保 ViewModel 属性的更改自动反映在 View 中。这种自动同步消除了在底层数据更改时手动更新 UI 的需要,从而降低了复杂性和出错的可能性。...这就是发挥作用的地方,确保在 or 属性更改时更新 UI。...在 XAML 中,使用绑定 在基于 XAML 的应用程序(如 WPF 或 UWP)中,您可以将 UI 元素绑定到实现 .这允许 UI 在基础属性值更改时自动更新。...当子属性的值发生更改时(例如,在实例中),父对象 () 不会收到对象属性发生更改的通知,这会阻止 UI 按预期更新。...CommunityToolkit.Mvvm 库包括一个名为 的类,该类负责接口的自动实现。它还包括 attribute,该属性将带注释的字段转换为在其值更改时发出事件的属性。

36510
  • 数据库中计算值的更新方法

    在做项目时,经常在项目中会遇到有些值是通过其他表经过计算得来的,然后将计算结果保存到数据库中。比如在一个休假系统中,一个员工每年已休天数就是一个计算值,通过SUM员工的所有有效休假申请单可获得。...1.基于现有的计算值,在更新相关数据时加减该计算值。 在需要计算的数据量比较大的情况下一般采用这种方法。...2.每次更新相关数据时,根据所有数据重新计算。 在计算量较小是使用这种方法。比如我们的订单系统中,订单的总金额就是汇总订单明细的金额,如果删除了或者增加了订单明细,那么只需要重新汇总即可。...第二种方法在每次更新数据时重新计算,需要一定的计算量,所以不能用于大数据量的计算,优点是不用担心数据不一致的问题,保证计算列是正确的。 如果使用第一种方法,如何避免数据不一致呢。...一个常用的方法是建立一个定时任务,在数据库闲时使用全量数据重新计算每天发生更改的数据的计算值,然后用这个值和数据库中的该列进行比较,如果不相同,那么就通知管理员,人为清查数据不一致的原因,将数据修复。

    92120

    New UWP Community Toolkit - RangeSelector

    概述 前面 New UWP Community Toolkit 文章中,我们对 V2.2.0 版本的重要更新做了简单回顾,其中简单介绍了 RangeSelector,本篇我们结合代码详细讲解一下 RangeSelector...先来看看类中的依赖属性: Minimum - 控件允许选择范围的最小值,默认是 0.0,修改时触发 MinimumChangedCallback Maximum - 控件允许选择范围的最大值,默认是 1.0...,修改时触发 MaximumChangedCallback RangeMin - 控件实际选择范围的最小值,默认是 0.0,修改时触发 RangeMinChangedCallback RangeMax...rangeMin 和 rangeMax 两个滑块的拖拽事件,我们还是只看 min 对应的处理,max 处理类似: 根据当前滑块拖拽后的位置,来修改实际范围最小值;计算方式就是根据允许范围区间,控件实际宽度...,以及当前位置距离最小值的距离,来计算出比例; private void MinThumb_DragDelta(object sender, DragDeltaEventArgs e) { _absolutePosition

    90270

    .NET 基金会项目介绍-Humanizer

    Humanizer 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。...这个需求的一种办法,就是在枚举上定义 DescriptionAttribute ,然后使用方法获取该值以进行展示。 类似以上这种需求,实际上都是为了将计算机定义的形式以人类容易理解的方式进行展示。...这也就是该工具库所关注的需求点。 正如简介所指,它能够解决多种类型的展示问题,详细可以阅读项目文档进行了解。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

    80920

    New UWP Community Toolkit - RadialGauge

    概述 New UWP Community Toolkit  V2.2.0 的版本发布日志中提到了 RadialGauge 的调整,本篇我们结合代码详细讲解  RadialGauge 的实现。...包含了下面三个控件部分 PART_Scale - 比例尺控件 PART_Trail - 仪表盘实际值显示控件 Value and Unit - 实际值文本和单位显示控件 <Style TargetType...: ① OnValueChanged(d) 在数值变化后,触发 OnValueChanged(d) 事件的方法;首先根据设置的取舍值,矫正当前的 Value,计算出对应的角度;给仪表盘的指针赋值,让指针指向当前角度...;然后是给显示当前值区间的弧形赋值,如果当前角度值为 360,则整个填充仪表盘,否则根据角度计算出填充的区域,给 ArcSegment,PathFigure,PathGeometry 赋值;最后给仪表盘的数值文本控件赋值...(point) 方法中: 首先计算出当前点击或触摸点相对比仪表盘圆心的坐标,根据坐标计算出角度;再根据最大角度和最小角度的值,计算出可变化的实际区间;最后用当前角度与最小角度的差值,与实际区间做一个比例换算

    997150

    win10 uwp 依赖属性

    本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性的好处,只是简单告诉大家如何使用。...本文最后提供修改的代码片,可以解决变量名修改出现的界面绑定不刷新。...UWP 什么时候可以获取继承的依赖属性 依赖属性一般是不在构造函数写获取继承的属性的值,因为一般这时拿到的值都是没有继承,请看下面的代码 创建一个用户控件 LuenqxuhkRrjbzcf ,在他的构造函数和加载完成事件添加获得...那么是在什么时候才可以拿到依赖属性的值? 依赖属性需要在加逻辑树才可以拿到值,所以在加入逻辑树之后,构造函数是类创建,所以这时不能拿依赖属性的值。...WPF 获得依赖属性值更新 如果需要获得 G 的 Padding 的值更改,WPF 获得依赖属性 值更改可以使用下面代码 DependencyPropertyDescriptor.FromProperty

    83920

    .NET 基金会项目介绍-NUnit Test Framework

    NUnit Test Framework 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。...NUnit 3 则由 Charlie Poole, Rob Prouse 不计其数的社区贡献者共同开发,并持续跟进。...参与讨论 笔者简评 Nunit 作为老牌单元测试框架确实足以满足几乎所有的单元测试相关的测试。很多基于之上开发的 BDD 框架等等也层出不穷。经久不衰就是优秀框架的最好证明。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

    95100

    .NET 基金会项目介绍-ReactiveUI

    我们相信,尽管代码运行在计算机上,但代码就是人与人之间的沟通。如果您的代码为他人的阅读进行过优化,那么时间久了之后,您的项目将会更好。软件应该容易被他人阅读,这是非常重要的。...没错,确实有更好的办法! 很久以前,当计算机编程刚刚出现的时候,计算机程序不得不完全采用手动的方式编写。如果技术员按照正确的顺序输入了正确的机器指令,那么程序的结果将会正确地符合业务场景。...想要告诉计算机如何进行操作,这本身就是容易出错的,并且这非常依赖于无懈可击程序员。但直接将“这个操作是什么”告知的计算机,然后等待结果产出,无需关心计算机如何处理,岂不美哉?...这里有三个单元格, A, B, 和 C C 为 A 与 B 相加的和 无论 A 和 B 如何变化, C 都会自动的更新自己的数值 这就是反应式编程:输入的改动会自动的在系统中传递。...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

    2.2K00

    如何在 UWP 使用 wpf 的 Trigger 安装 Behaviors以前的代码UWP 使用 Trigger

    本文需要告诉大家,如何使用 Behaviors 做出 WPF 的 Trigger ,需要知道 UWP 不支持 WPF 的 Trigger 。...,需要先添加命名空间和寻找一张图片,因为图片使用的是Assets/动漫.jpg ,所以需要把他修改为你的图片的所在,如何写参见win10 uwp 访问解决方案文件 命名空间 xmlns:Interactivity...按钮无法使用时的图片 ? 请使用 DataTriggerBehavior 的Binding 连到需要修改的属性,在 Value 判断他的值。...然后可以在得到的值判断,修改透明 可以看到使用方法和动画一样 如果使用 MVVM 的话,可以把透明绑到一个属性,通过返回来设置,如果按钮有 IsMyButtonEnabled 那么可以使用下面的代码绑定透明...1.0 : 0.5; 参见:Trigger element (XAML) is not supported in a UWP project ---- 本文会经常更新,请阅读原文:

    2.2K00

    .NET 基金会项目介绍-Orleans

    Orleans Orleans 为开发分布式、可伸缩的计算型应用程序提供了明显的方案,开发者无需学习如何进行复杂的并发处理以及其他的伸缩性相关的软件模式。...但不仅限于此,其中也为实现应用的伸缩性和云场景设计了很多优秀的特性。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...NET - 【SDK】 SourceLink - 【源码调试支持】 Steeltoe - 【微服务框架】 System.Drawing Mono - 【2D绘图工具库】 Telerik UI for UWP...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

    59330

    .NET 基金会项目介绍-IdentityManager

    因此,非常不建议在生产环境使用。而且通常是不需要用到它的。 “内建于 Visual Studio 中的 ASP.NET 网站管理工具” 想必用户的国内开发者并不多。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...NET - 【SDK】 SourceLink - 【源码调试支持】 Steeltoe - 【微服务框架】 System.Drawing Mono - 【2D绘图工具库】 Telerik UI for UWP...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit...- 【WP 工具库】 Windows Template Studio - 【UWP 项目模板】 Windows Forms - 【客户端开发框架】 WiX Toolset - 【安装包制作框架】 WorldWide

    63510
    领券