mvvm 相关问题

Model-View-ViewModel(MVVM)是一种架构设计模式,用于实现用户界面,通过其表示逻辑(其ViewModel)将UI(View)与其数据(Model)分开。

协调器为零,单击按钮时不会导航到下一个屏幕

我一直在尝试重构我的源代码,使其符合协调器模式。我使用 UITabBarController 作为我的应用程序的父 viewController,其中包含 4 个 viewControl...

回答 2 投票 0

如何在WPF中从ViewModel设置Fluent.Ribbon StartScreen的IsOpen属性?

我正在使用 Fluent.Ribbon 库开发 WPF 应用程序,并且在从视图模型设置 StartScreen 控件的 IsOpen 属性时遇到问题。 我有一个 MainViewModel...

回答 1 投票 0

MVC、MVP、MVVM 用例

我是一名 Android 开发人员,我在我的应用程序中研究了所有这三种架构模式。我还浏览了 stackoverflow 上的几篇文章,了解它们之间的差异。我的

回答 2 投票 0

AvaloniaUI - 使用基于组合根的 DI 系统将 ViewModel 注入视图的正确方法是什么?

我对 Avalonia/WPF、Xaml 和桌面开发总体来说是新手,所以请原谅并澄清我所展示的任何相关误解。我将继续研究可用的文档,但我是

回答 1 投票 0

如何使用 MVVM 将 WPF TabItem 绑定到特定的 C# 类?

我想将 TabControl 的每个 TabItem 绑定到特定的 C# 类,以使用类属性的状态来对 View 进行反应。我尝试使用 MVVM,我知道这样可以更好地将对象集合绑定到

回答 1 投票 0

如何修改 Avalonia WritableBitmap 并将更改更新为 UI 上的图像控件?

我的 MainWindowViewModel 类中有一个 WritableBitmap 对象 _myBitmap,我想用它来显示来自网络摄像头的实时镜头。但本质上,我要做的就是写一些新的值...

回答 1 投票 0

最佳实践 MVVM 将数据从一个 Activity 传递到另一个 Activity

当前将数据从一个活动(主)传递到另一个(详细)的最佳实践是什么。 一种可能的方法是拥有一个在 master 和

回答 3 投票 0

按钮始终处于禁用状态

我的视图上有一个带有简单命令绑定的按钮: ... 我的视图上有一个带有简单命令绑定的按钮: <Window ...> <Window.DataContext> <vm:ShellViewModel /> </Window.DataContext> ... <Button Command="{Binding DoSomethingCoolCommand}" Content="Execute" /> 还有虚拟机: public class ShellViewModel : ObservableObject { private RelayCommand _doSomethingCoolCommand; public ICommand DoSomethingCoolCommand { get { return _doSomethingCoolCommand ?? (_doSomethingCoolCommand = new RelayCommand(DoSomethingCool)); } } private void DoSomethingCool() { ... } 但是,该按钮在应用程序/视图启动时被禁用,并且我无法启用它。我尝试将命令执行评估传递给 RelayCommand 并在视图上设置 IsEnabled 。我是不是错过了什么? 编辑 RelayCommand 和 ObservableObject 来自 mvvm Foundation 项目,如标签中所述。链接:https://mvvmfoundation.codeplex.com 您是否检查过是否有任何按钮父级的状态为禁用?这也会禁用所有子控件。 旁注: 你似乎从来没有调用过CommandManager.InvalidateRequerySuggested(),并且它没有在RelayCommand类中实现,只是事件的注册,如here所示。默认情况下,ICommand 或 RelayCommand 永远不会使其状态更新无效。你必须这样做。通过调用 CommandManager.InvalidateRequerySuggested(),这将建议重新查询所有已注册的命令(因为按钮 1 中的操作可能会影响许多其他命令。 例如,可能有一个 IsProcessing 属性,当它的值更改时,您可以调用 CommandManager.InvalidateRequerySuggested() 来更新所有其他命令的状态。

回答 1 投票 0

MAUI (MVVM):在选择器选择更改时调用视图模型中的命令

在.NET MAUI中,有一个控件“Picker”,它似乎没有用于在页面视图模型中调用命令的选项。按钮有一个“命令”,允许您选择...

回答 1 投票 0

在.net MAUI MVVM 中创建自定义方形复选框控件

这就是让我发疯的事情! 我只是找不到为 CheckBox 组件创建自定义控件的方法。当 IsChecked = false/tr 时,我需要 Android 和 iOS 工作组件看起来像这样...

回答 1 投票 0

如何检查PageLoaded和ModelLoaded?

如何检查PageLoaded和ModelLoaded? 我试图检查并阅读每一行代码,看看错误出在哪里,但实际上一切都逐渐变得复杂,我无法控制。所以我

回答 1 投票 0

ViewModel - 跳过开始屏幕 Jetpack Compose

我有一个开始屏幕(onBoard)和一个身份验证视图模型,我希望在重新启动时跳过屏幕。我如何通过 ViewModel 执行此操作? 有趣的 NavGraphBuilder.authNavGraph(navController: NavHostController){ ...

回答 1 投票 0

在 AddNew 或 EditItem 事务 mvvm 期间不允许 WPF DataGrid“刷新”

我有以下网格 我有以下网格 <DataGrid x:Name="TablesDataGrid" Grid.Column="0" Grid.Row="1" ItemsSource="{Binding FilteredModels.View}" AlternationCount="2" AutoGenerateColumns="False" CanUserSortColumns="True" CanUserReorderColumns="False" CanUserDeleteRows="False" CanUserAddRows="False" SelectionMode="Extended" IsReadOnly="False" SelectionUnit="FullRow" RowHeight="25" HorizontalAlignment="Stretch" ColumnWidth="Auto"> <DataGrid.Columns > <DataGridCheckBoxColumn Width="*" Binding="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsReadOnly="False"> <DataGridCheckBoxColumn.HeaderTemplate> <DataTemplate> <CheckBox IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.CheckAll}"/> </DataTemplate> </DataGridCheckBoxColumn.HeaderTemplate> </DataGridCheckBoxColumn> <DataGridTextColumn Header="Source Table" Binding="{Binding SourceTableFullName}" Width="4*"></DataGridTextColumn> <DataGridTextColumn Header="EDW Schema" Binding="{Binding SchemaName}" Width="2*"></DataGridTextColumn> <DataGridTextColumn Header="EDW Table" Binding="{Binding TableName}" Width="4*"></DataGridTextColumn> <DataGridTextColumn Header="Status" Binding="{Binding Status}" Width="*"></DataGridTextColumn> </DataGrid.Columns> </DataGrid> 然后我有一个 searchCommand 对视图模型中的 collectionViewSource FilteredModels 执行搜索,然后调用 this.FilteredModels.View.Refresh(); 当用户选中一些复选框并将网格发送到编辑模式,然后执行搜索时,我们会收到以下错误 WPF DataGrid 'Refresh' is not allowed during an AddNew or EditItem transaction 有没有办法在选中复选框时强制网格退出编辑模式,甚至单击搜索按钮或其他修复方法? 谢谢! 我知道现在回答已经太晚了...但对于正在寻找答案的人来说 按如下顺序使用 cancelEdit 或 commitEdit 方法两次 //用于提交 this.datagrid_layers.CommitEdit(); this.datagrid_layers.CommitEdit(); //取消 this.datagrid_layers.CancelEdit(); this.datagrid_layers.CancelEdit(); 有一个干净的 MVVM 解决方案可以解决这个问题。首先,您的 ViewModel 必须实现 IEditableObject 接口(无操作就足够了)。然而,这还不够,因为 DataGrid 不会听 IEditableObject.CancelEdit。 另一个问题是,ICollectionView和IEditableCollectionView都没有实现另一个。虽然只有 ICollectionView 可以刷新,但只有 IEditableCollectionView 可以提交/取消。幸运的是,CollectionViewSource.GetDefaultView返回的集合视图实现了both: // ViewModel.cs public class ItemVM : IEditableObject, INotifyPropertyChanged { } public class ModuleVM : INotifyPropertyChanged { ICollectionView Items { get; } public ModuleVM(ObservableCollection<ItemVM> items) { Items = CollectionViewSource.GetDefaultView(items); } public void RefreshSafely() { ((IEditableCollectionView)Items).CancelEdit(); // alterantively, CommitEdit() Items.Refresh(); } } 或者换句话说,您可以将 ICollectionView 投射到 IEditableCollectionView 并先调用 CancelEdit()。 您应该能够将所选项目转换为 IEditableObject 并对其调用 EndEdit,或调用网格 CancelEdit 方法。 这是我的解决方案,请根据您的需要进行调整。 private void CommitEditRefreshViewSafely() { ((IEditableCollectionView)MyCollectionViewList.View).CommitEdit(); MyCollectionViewList.View.Refresh(); }

回答 4 投票 0

TextFormField 获得焦点当前页面被关闭

在我的登录页面中,当任何字段显示焦点键盘并且突然页面立即关闭时,用户名和密码字段都存在。分析了一下,发现这个问题很...

回答 1 投票 0

MVVM - ViewModel 中的逻辑

我有一个采用MVVM架构的小型应用程序。我对视图模型中的逻辑有疑问。更简单的逻辑也应该出现在视图模型中吗?就像我有一个 editText ,在 textChanged 上,我有一个 l...

回答 1 投票 0

WPF MVVM:支持字段中带有模型的 ObservableValidator

我的代码看起来有点像下面这样: 公共类我的模型{ 公共字符串 MyProperty { 获取;放; } } 公共类 MyViewModel:ObservableValidator { 私有 mModelInstance; 公开

回答 1 投票 0

如何在SwiftUI中的视图模型之间共享和修改数据?

我正在 SwiftUI 中制作一个社交媒体应用程序,但我一直困惑于如何在视图模型之间共享和修改数据。对于每个视图(PostListView、PostDetailView、PostUpdateView)我都有一个单独的视图模块...

回答 2 投票 0

与 C# 桌面应用程序、C# MAUI 应用程序和 SQL Server 一起使用

我想设计一个适用于桌面和Android移动设备的应用程序。 我目前的应用程序仅针对具有本地 SQL Server 数据库的桌面。 我想共享同一个 SQL Server 数据库...

回答 1 投票 0

android中的模型-视图ViewModel模式中游戏逻辑应该在哪里

我目前正在使用模型-视图 ViewModel 模式开发一个 Android 扑克游戏应用程序,我不确定游戏逻辑的正确位置应该在哪里。该架构目前看起来

回答 1 投票 0

ObjectClass C# 中是否有一种方法 MVVM ObservableProperty?

ObjectClass C# 中是否有 MVVM ObservableProperty 的方法? 我有一个 ObjectClass 和里面的一些属性 公开课 FontsVip { 私有静态 FontsVip obj; 公共静态 FontsVip Obj...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.