Questions tagged «mvvm»

Model-View-ViewModel(MVVM)是用于实现用户界面的体系结构设计模式,该模式通过其表示逻辑(其ViewModel)将UI(视图)与其数据(模型)分离。

6
刷新WPF命令
有谁知道我可以如何强制CanExecute使用自定义命令(乔什·史密斯的RelayCommand)? 通常,CanExecute只要在UI上发生交互,就会调用。如果单击某些内容,则命令将更新。 我遇到的情况CanExecute是幕后的计时器会打开/关闭条件。因为这不是由用户交互驱动的,CanExecute所以直到用户与UI交互才被调用。最终结果是我Button保持启用/禁用状态,直到用户单击它为止。单击后,它会正确更新。有时Button显示为已启用,但是当用户单击时,它变为禁用而不是触发。 当计时器更改影响的属性时,如何强制代码更新CanExecute?我尝试在影响的属性上触发PropertyChanged(INotifyPropertyChanged)CanExecute,但这并没有帮助。 XAML示例: <Button Content="Button" Command="{Binding Cmd}"/> 后面的示例代码: private ICommand m_cmd; public ICommand Cmd { if (m_cmd == null) m_cmd = new RelayCommand( (param) => Process(), (param) => EnableButton); return m_cmd; } // Gets updated from a timer (not direct user interaction) public bool EnableButton { get; set; …
72 wpf  mvvm  updating 

3
android数据绑定的优缺点是什么?
我和我的同事都拥有Web App MVVM的经验,而我们还是原生android开发的新手。现在我们对android数据绑定有相反的看法-我是他的粉丝,而他不是。 我的论点: 减少样板代码,从而带来 减少耦合 可读性更强 功能强大,易于实现的自定义属性和自定义视图 甚至比findViewById更快(详细信息) 他的论点: 自动生成的.class会增加应用大小。 难以调试 我进行了一些调查,但没有太多讨论。现在,我想收集android数据绑定的优缺点。 讨论的方面包括但不限于: 单元测试 应用程式大小 性能 学习曲线 可读性 耦合

6
角度设计模式:MVC,MVVM或MV *?
Angular 1.x(AngularJS)由于具有双向数据绑定功能,因此或多或少遵循MV *设计原理。 Angular2正在采用基于组件的UI,这是React开发人员可能熟悉的概念。从某种意义上说,Angular 1.x控制器和指令会模糊到新的Angular 2组件中。 这意味着在Angular 2中没有控制器,也没有指令。相反,组件具有一个与该组件将代表的html标签相对应的选择器,以及一个@View,用于指定要填充的HTML模板。 Angular2仍然实现双向数据绑定,但是不包含模型,例如,如果我有一个@Component显示文章列表和一个class定义文章对象的模型: class Article { title: string; link: string; votes: number; constructor(title: string, link: string, votes?: number){ this.title = title; this.link = link; this.votes = votes || 0; } 在MVC模式中,这将被视为模型。 因此,考虑到哪种设计模式Angular最接近?

3
SwiftUI-如何将EnvironmentObject传递到视图模型中?
我正在寻找创建一个可以由视图模型(而不仅仅是视图)访问的EnvironmentObject。 Environment对象跟踪应用程序会话数据,例如,loginIn,访问令牌等,该数据将传递到视图模型(或需要的服务类)中,以允许调用API来传递来自此EnvironmentObjects的数据。 我试图将会话对象从视图传递给视图模型类的初始化程序,但出现错误。 如何使用SwiftUI将EnvironmentObject访问/传递到视图模型? 请参阅测试项目的链接:https : //gofile.io/?c=vgHLVx
16 ios  swift  mvvm  swiftui 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.