草庐IT

simple-mvvm

全部标签

wpf - MVVM 和多窗口

我正处于我想使用Caliburn.Micro和C#/WPF编写的小型应用程序的预设计阶段。我仍在学习该框架,但我喜欢目前所见。我打算构建的应用程序是一个进程内存搜索/扫描实用程序,具有ASM反汇编和内存浏览功能。这三个问题——搜索/扫描、ASM反汇编和内存浏览——我希望由三个或更多单独的窗口处理。搜索/扫描部分将包含主应用程序外壳,而其他两个功能(可以同时调用多次)将使用从外壳上的操作调用的单独窗口。我的问题是:如何从shell(或其他一些)View模型中启动新窗口?我知道我必须传递另一种View模型以在新窗口中呈现-但正是新窗口业务让我感到困惑。 最佳答案

c# - 将对象从父 View 传递到 MVVM 中的 subview

我目前正在尝试进入WPF和MVVM,但我最近遇到了一个我不知道如何解决的问题。我是新手,所以如果有什么不对劲,请告诉我。我有一个ParentView及其ParentViewModel。ParentView包含两个ViewSubViewA和SubViewB,它们都有自己的ViewModel。这是我的ParentView.xaml:我想做什么:SubViewModelB有一个绑定(bind)到SubViewB的属性。我想在ParentViewModel中发生某个事件时更改该属性。我想这应该通过将SubViewModelB中的属性绑定(bind)到ParentViewModel中的属性来完成

c# - WPF 应用程序中的 MVVM 符合本地化

如何使用MVVM模式本地化WPF应用程序?我真的很想以“正确”的方式去做。我目前的方法是使用.resx资源文件来本地化我的应用程序。我将它们包含在我的xaml代码中xmlns:localization="clr-namespace:ClientLibTestTool.ViewLanguages"并像这样访问它们:我的问题:有更好的方法吗?如何测试不同的语言(使用不同的语言设置加载应用程序)?是否可以在运行时更改语言?答案:问题一:问题2:(谢谢stijn)publicMainWindow(){//DebugSettingslocalization.Culture=CultureInfo

c# - 如何在 MVVM WPF 应用程序中取消窗口关闭

单击“取消”按钮(或右上角的“X”或“Esc”)后如何取消退出特定表单?WPF:View模型:publicclassMyViewModel:Screen{privateCancelCommandcancelCommand;publicCancelCommandCancelCommand{get{returncancelCommand;}}publicMyViewModel(){cancelCommand=newCancelCommand(this);}}publicclassCancelCommand:ICommand{publicCancelCommand(MyViewModelvi

c# - MVVM:精简 ViewModel 和丰富模型

我一直在与MVVM模式作斗争,并且在尝试为小型/中型项目创建实用设计时遇到了许多挑战。其中一项挑战是弄清楚如何在不创建大量重复且难以维护的代码的情况下获得与此模式分离的好处。我目前的策略是创建“丰富”的模型类。他们充分意识到他们将被MVVM模式消耗并实现INotifyPropertyChanged,允许他们的集合被观察并保持认识到他们可能总是被观察。我的ViewModel类往往很薄,仅在实际需要转换数据时才公开属性,其中大部分代码是RelayCommand处理程序。View很乐意直接绑定(bind)到ViewModel或模型,具体取决于是否需要任何数据转换。我使用AOP(通过Posts

c# - 在 MVVM 中使用后台 worker 更新 ObservableCollection

好的,我最近实现了一个后台工作程序来执行数据的保存和加载。然而,事实证明,要让它在保存命令上运行很困难。基本上,我的保存命令会生成一个事件,通知CollectionView模型已添加一个项目,并且该项目应该添加到它自己的ObservableCollection中。在这一点上,我得到了一个常见的异常,说我不能在不同的线程上更新ICollection。我已经尝试创建一个调用Dispatcher.Invoke的新列表类型,但这仍然会生成相同的异常。我想知道是否还有其他人对如何最好地解决这个问题有任何建议?所以目前我有一个继承自ObservableCollection的类:publicclas

c# - 展示如何在 MVVM 应用程序中使用 Avalondock 的示例代码

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我正在尝试在我的wpf应用程序中使用AvalonDock,它是一个MVVM应用程序。环顾四周,我找不到任何示例应用程序来说明如何执行此操作。AlavonDock说原生支持MVVM,所以支持mvvm应该很容易,但是没有示例代码。我的问题是:如何编写具有文档管理器并绑定(bind)到的xamlView模型?如何在这种情况下向面板添加新文档?如何从documentmanegr获取有关布局的信息(如果可能)。

c# - 用于 UWP 应用程序的 Prism 与 mvvm 光

我们在Windows8.1中有一个与Win10兼容的工作项目。现在的要求是将此项目转换为UWP。在早期的项目中,我们使用了PRISM作为MVVM的框架。现在的问题是,对于UWP应用,Prism的新版本还没有发布,我们正在考虑使用MVVMLight。我对这两个框架都是新手,即PRISM和MVVMLight。现在我的问题是将代码库从PRISM迁移到MVVMLight会有多困难。如果困难,应该等待PRISM更新版本发布。如果我们应该转向MVVMLight,需要进行哪些重大更改。根据我的观察,代码库与PRISM高度耦合,在整个代码中广泛使用IResourceLoader、ISessionSta

c# - 从插件程序集将 WPF UI 加载到 MVVM 应用程序中

我正在开发一个使用插件架构来扩展其功能的应用程序。从插件加载WPFUI的最佳方式是什么?我将有一个列出所有可用插件的列表框。选择插件后,插件中定义的WPFUI应显示在ContentControl中。我想到的选项包括:需要创建一个实现特定接口(interface)的UserControl。我认为这将使插件创建变得容易。实现一个接口(interface),你就可以开始了。我对这种方法的问题是如何将UserControl动态加载到ContentControl中。此外,由于我使用的是MVVM设计模式,因此似乎DataTemplate优于UserControl。允许从插件加载DataTempla

c# - 在 MVVM 中打开一个新窗口

假设我有一个MainWindow和一个MainViewModel,我没有使用MVVMLight或Prism在这个例子中。在此MainWindow中,我想单击MenuItem或Button以打开NewWindow.xaml而不是用户控件。我知道如何将它与UserControl一起使用,以在ContrntControl或Frame中的现有窗口中打开一个新的UserControl>.代码publicViewModelBaseDisplayUserControl{get{if(displayUserControl==null){displayUserControl=newViewModels.