草庐IT

c# - WPF MVVM : Binding a different ViewModel to each TabItem?

我有一个带有选项卡控件的主窗口,其中包含2个tabItem:我目前有1个ViewModel为Tab1和Tab2提供服务。此ViewModel因SOC模糊而变得有点臃肿。我想将逻辑拆分为2个View模型:ViewModel1和ViewModel2。我的理解是,您可以将主窗口DataContext设置为包含ViewModel集合的BaseViewModel,然后您可以将每个TabItem声明为不同的ViewModel。我看到的这些基本ViewModel的示例公开了一个ObservableCOllection,如下所示:privateObservableCollection_viewMode

c# - WPF MVVM 代码隐藏

在我的WPFMVVM项目中,我尽量避免在View中隐藏代码。但是我有一些非常特定于View的东西。例如,当控件获得焦点时,我希望突出显示全文(即使用户单击文本框)。在这里,我可以选择在View模型中处理这个问题(然后需要了解View,我想避免这一点)。我还有一些其他类似的代码,当用户在键盘上向左或向右按​​下时(他们只对View进行更改,而不是模型或View模型)我又在想这些的最佳位置是在View的代码后面。所以我问的是代码是否只影响View(例如光标移动、选择文本框中的所有文本等...,而不是模型或View模型,是否可以将其放入代码中在后面,而不是在其他地方。想知道这里的最佳实践是什

c# - X 毫秒后触发一个 Action 开始

我正在开发一个XamarinForms移动应用程序,它有一个包含SearchBar、ListView和Map控件的页面。ListView包含一个地址列表,这些地址在map上显示为图钉。当用户在SearchBar中键入内容时,ListView会自动更新(通过ViewModel绑定(bind))。为列表过滤数据源的ViewModel方法看起来像这样......voidFilterList(){listDataSource=newObservableCollection(locationData.Where(l=>l.Address.Contains(searchBar.Text)));//

c# - 与 ViewModel 绑定(bind)的 MVVM 动态菜单 UI

我正在与一个团队合作处理LoB应用程序。我们想要一个动态的Menu控件,它根据登录的用户配置文件创建菜单。在以前的开发场景(即ASP.NET)中,我们使用迭代描述集合的数据并动态生成MenuItem。在MVVM中我该怎么做?我可以将XAMLView与描述菜单元素的ViewModel分开吗?解决方案:通过评论员的输入,我能够将Menu与来自ViewModel的数据动态绑定(bind)。这article也有很大的帮助。XAML:[...]菜单数据类:publicclassMenu:ViewModelBase{publicMenu(){IsEnabled=true;Children=newL

c# - 多个命令参数wpf按钮对象

如何从WPF中的Button发送多个参数?我能够正确发送作为TextBox值的单个参数。这是代码。XAML代码隐藏publicICommandCommandClick{get;set;}this.CommandClick=newDelegateCommand(AddAccount);privatevoidAddAccount(objectobj){//customlogic} 最佳答案 除了使用在您的类(我们称之为您的ViewModel)中定义属性的方法来绑定(bind)您的View之外,有时(不常见)我们不想这样做,这是一个重要的

c# - 如何在不在 wpf 中引入新引用的情况下从 View 模型 (.cs) 调用窗口 (.xaml.cs) 中的方法

我正在寻找一种在我的主窗口中调用方法的简单方法,但我想从我的View模型中调用它。基本上,我正在寻找某种“this.parent”之王,将其放入View模型中以引用主窗口。或者,如果您想了解我想要这样做的原因并告诉我另一种解决问题的方法:我正在使用一个不断获取信息的应用程序。在View模型中,信息被处理。我想在每次有满足某种条件的信息进来时发出通知。最初,我在View模型中有一个字典,用于存储有关该信息的信息,我在MainWindow中访问该字典,以便我可以使窗口闪烁并发送其他通知。但是当我在MainWindow中访问它时,我遇到了viewmodel的字典不断变化的问题。如果这个问题听

c# - WPF/多线程 : UI Dispatcher in MVVM

也就是说,在MVVM环境中,我在后台线程中,我想在ui控件上运行更新。所以通常我会去myButton.Dispatcher.BeginInvoke(blabla)但我无权访问myButton(因为View模型无权访问View的控件)。那么这样做的正常模式是什么?(我猜总有绑定(bind),但我想知道如何通过调度程序做到这一点) 最佳答案 我通常使用Application.Current.Dispatcher:因为Application.Current是静态的,所以您不需要对控件的引用 关

c# - 从 MVVM 中的 DataGrid 或 ListBox 绑定(bind)到 SelectedItems

只是在WPF上做了一些简单的阅读,我需要从DataGrid中绑定(bind)selectedItems,但我无法想出任何有形的东西。我只需要选定的对象。数据网格: 最佳答案 SelectedItems可绑定(bind)为XAMLCommandParameter。经过大量挖掘和谷歌搜索,我终于找到了解决这个常见问题的简单方法。要使其正常工作,您必须遵循以下所有规则:正在关注EdBall'ssuggestion',在XAML命令数据绑定(bind)上,在Command属性之前定义CommandParameter属性。这是一个非常耗时的错

c# - mvvm 如何使 ListView 自动滚动到 ListView 中的新项目

我正在使用MVVM模式,我有一个创建新ViewModel的View,在用户单击保存后,关闭此View并打开一个显示View模型集合的单独View在ListView中。这个ListView是按字母顺序排列的,所以新的ViewModel可能会出现在ListBox的底部,不是立即可见的给用户。我的问题是如何让View自动滚动到新添加的项目?我想它将使用附加行为,以及ListView上的ScrollIntoView事件,但是我需要从GridView中捕获它的哪个事件我不确定..干杯 最佳答案 此解决方案适用于ListBox,但它可以针对Li

c# - WPF-MVVM-组合框选定项

我有ViewModel(已实现INotifyPropertyChanged)在后台和类中Category它只有一个string类型的属性.我的ComboBoxSelectedItem绑定(bind)到类别的实例。当我更改实例的值时,SelectedItem不会更新,Combobox也不会更改。编辑:代码组合框:属性:privateCategory_NodeCategory;publicCategoryNodeCategory{get{return_NodeCategory;}set{_NodeCategory=value;OnPropertyChanged("NodeCategory"