我是MVVM的新手。目前,我正在C#中开发一个WPF项目,该项目将有一个SQl Server后端,我将使用标准WCF服务与之通信。到目前为止,我在MVVM上看到的所有教程似乎总是使用一些静态数据存储库,例如xml文件作为后端。我还没有看到使用数据库和数据访问层的实现,所以我不知道我的WCF服务适合哪里。服务中定义了所有数据对象,那么服务本身是否成为模型?此外,如何在ViewModel中包含服务,以便设计器不会抛出错误,声明它无法为服务类创建实例?如果您能在这里提供帮助,我将不胜感激,因为我觉得奇
是否有方法对添加到ItemsControl区域的视图进行排序?要添加的视图在容器中注册,并添加到每个唯一模块中的区域
一些伪代码
外壳:
<Window>
<ItemsControl Prism:RegionManager.Region="ItemsRegion"/>
</Window>
模块:这是模块中的初始化代码
protected override void RegisterViewsAndServices()
{
Commo
让我们举个例子。我有一个绑定到AViewModel的AView。AView应该在AViewModel上执行一个ACommand,并向其传递一个参数。问题是ViewA没有足够的信息传递给命令,因此需要显示另一个BView,以便从用户处收集信息。关闭VIewB后,ViewA调用AViewModel上的命令,并将参数传递给它
如何处理这种情况?我应该允许AView直接与BView沟通,还是我违反了一些规则
我认为的另一种方法是在AViewModel上调用一个ACommand而不使用参数,然后从VIew
我有以下情况(使用KendoUI):
我有一个绑定到数据源的网格。
当我在网格中选择一行时,我调用它的“change”事件来获取所选的数据项,并通过其他HTML元素显示其值
如下所示:
$("grid-element").kendoGrid({
change: setElements
});
function setElements() {
var grid = $("#grid-element").data("kendoGrid");
var selectedItem
在具有干净模型的MVVM应用程序中(不实现像InotifyPropertyChabbed这样的接口),视图模型包含绑定到视图的属性,这些属性从视图模型中包含的模型对象获取其值,并且当视图更改绑定到这些属性的控件之一时,应设置其属性的值。
问题是当视图改变时;这些更改由绑定视图模型属性捕获,但属性无法设置模型对象字段,模型不会更改。我需要模型字段接受视图模型属性的设置,然后我可以将更新后的模型持久化到数据库中,因为它是一个干净的模型
这里是视图模型代码的一部分
public class Subsy
我希望这是一个关于MVVM的简单但做作的问题
我的主窗口有一个控件-ContentControl,它只显示两个视图中的一个。我希望能够通过一个按钮在两个视图之间切换。问题是,按钮将是每个视图上的控件。例如,View1有一个按钮,View2有一个按钮。UI上每个视图仅显示一个视图,单击按钮将显示另一个视图。但是,要使其工作,这意味着视图的ViewModel必须了解主窗口的ViewModel,才能更改视图。这似乎是错误的
问题可能是我的主窗口视图模型。其中一个项目是公共对象视图{get;set},这
我正在尝试确定多视图模型通信机制的最佳方法(例如:视图模型A和视图模型B是松散耦合的。现在我想从A向视图模型B传递一个值。我不想使用EvenAggregator,并且模型是独立的)
事件聚合器是可用的选项之一,但是由于安全性(由于其全局行为),我试图避免在正常通信中使用该选项
我在应用程序中使用了一个控制器,可以轻松地在两个视图模型之间路由数据。MVVM和Prism 4.0中的控制器是一个好方法吗
如果没有,那么有人能建议或指导我采取更好的方法吗?出于好奇:事件如何构成安全威胁?它们与方法调用没
我有一个MonotTouch应用程序,我希望使用INotifyPropertyChanged具有一些MVVM特性
我不想包含像MvvmCross这样的MVVM框架来实现这一点
我可以手动将事件处理程序添加到INotifyPropertyChanging并手动更新文本字段(etc),但我正在寻找一种不需要庞大的第三方库的通用方法
要将文本字段绑定到“viewmodel.property”需要做什么?有一个精简版的MVVMCross,它允许您在不合并所有MVVMCross dll的情况下进行数据绑定
标签: Mvvm
mvvm-lightmvvm-toolkit
请任何人提供一个示例,说明我如何在viewmodel中的longlistselector(或任何列表控件)中存储当前选定的项目。我似乎无法理解如何在viewmodel中实现逻辑,从而将其排除在codebhind页面中的事件处理程序之外!如果要使用绑定调用事件,请参阅本文
如果要在ViewModel中存储SelectedItem,您的xaml应该如下所示:
<ComboBox SelectedItem="{Binding MySelectedItem, Mode=TwoWay}"/>
我有一个关于如何使用MVVM实现复合字段的快速(希望如此)问题
我有两个例子,一个是在sql端,我用以下方式存储gps坐标“纬度,经度”,例如“45.55555,-80.00000”。另一个示例是将英尺和英寸存储为单个双字段,其中英尺和英寸为英尺英寸
我该怎么做?我应该有两个字段,如果存在另一个字段,则在模型或Viewmodel中合成它们吗?我是否应该将它们绑定到同一字段并以某种方式验证集合
谢谢 在模型中,我通常使用最接近/最容易接近源的结构/布局,以便轻松/快速地读写
在ViewModel中
此选项卡控件存在于我的主窗口中
<TabControl ItemsSource="{Binding MyTabItem}"
SelectedItem="{Binding SelectedTab}">
<TabControl.ItemTemplate>
<DataTemplate>
标签: Mvvm
datatemplatecaliburn.micro
我喜欢Caliburn Micro,但我在这里遇到了一些困难:
我想为给定的ViewModel子类型手动定义DataTemplate,但我不知道如何禁用自动基于名称的约定。来自文档:
你应该决定你不喜欢孩子的行为吗
ViewModelBinder(以下详细信息),它遵循与
上述框架服务。它有几个功能可以替换
使用您自己的实现,例如Bind、BindActions和
绑定属性。可能是定制最重要的方面
不过,功能是关闭活页夹的约定功能。
为此,请将默认情况下的ViewModelBinder.appl
我希望用Caliburn.Micro显示的屏幕/视图模型的正确解析方法是什么
以前我一直在使用IWidgetConductor,它维护着IWidget对象的集合(基本上是我的视图模型),我通过查询获得我想要激活的屏幕/视图模型
namespace App
{
using System;
using System.Collections.Generic;
using System.Linq;
using App.ViewModels;
public enu
标签: Mvvm
uwp-xamltemplate10xbind
当我在文本框中输入一个单词并按enter键时,该方法将被调用两次。使用模板10
{
“依赖项”:{
“Microsoft.NETCore.UniversalWindowsPlatform”:“5.1.0”,
“Microsoft.Xaml.Behaviors.Uwp.Managed”:“1.1.0”,
“Newtonsoft.Json”:“8.0.3”,
“模板10”:“1.1.*”,
“WindowsAzure.Storage”:“7.1.2”
},
“框架”:{
“uap10.0”:{}
}
标签: Mvvm
unity-containerprismconstructor-injectionprism-7
我正在使用Prism 7.2开发一个WPF应用程序。我有一个模块,它实现了IModule接口,我在RegisterTypes方法中注册视图和视图模型,例如:
containerRegistry.Register<IPanelOptimizationViewModel, PanelOptimizationViewModel>();
而ViewModelBase如下所示:
public class ViewModelBase : BindableBase, IViewModel
{
出于沮丧和超过3天的谷歌搜索这个问题。。。我别无选择,只能用我的问题来打扰你们
我正在创建一个Silverlight应用程序。我正在使用MEF。当我尝试运行我的应用程序时,我得到以下错误
对上的构造函数的调用
类型
'IFG.Silverlight.Client.Views.MenuView'
与指定绑定匹配的
约束引发了一个异常。[行:
25位置:47]
它的内部例外如下
组成保持不变。这个
更改被拒绝,因为
以下错误:合成错误
产生了一个构图错误。
下面提供了根本原因。
查看Composit
我正在用MVVM构建我的WPF应用程序,我遇到了一个小小的设计障碍。我有一个顶级窗口,其中包含一些属性,我可以将这些属性传递到我的第一级viewmodels,我可以很容易地使用viewmodel构造函数来实现这一点。但是,如果我想在该级别中有一些usercontrols,我如何将信息传递到它们的视图模型中呢
感谢您的帮助您的子用户控件需要一个依赖项属性,可以从主控件绑定到该属性@道格·弗格森在SO帖子中解释了如何做到这一点。希望这有帮助
我喜欢knockoutjs,我们越早摆脱直接面向DOM的编码越好。我很难理解我将如何做一些我将在问答网站上解释的事情。(这可能是一个一般的MVC/MVVM问题)
在我的数据模型中,我有一个问题[id,description]和一个答案[id,question\u id,text]。浏览器请求绑定到tbody的问题列表,其中一列将显示问题描述,而另一列应绑定到答案文本框
一个显而易见的方法是建立一个问答[问答id,问答id,问答描述,问答文本]模型。理想情况下,我希望将它们分开,以尽量减少发送/接
假设我使用的是MVVM方法(Silverlight)
我所有的按钮都是用命令操作的
假设我有一个按钮用于导航到某个页面,比如我们在网格中选择了一个客户,并希望导航到该客户的详细信息视图
我可以用DelegateCommand处理这个按钮吗?怎么用?我可以处理ViewModel中的导航吗?我是否被迫从后面的代码处理导航。我们开始:
Xaml:
基本上,该命令按照正常方式绑定到按钮。该命令是viewmodel上的一个属性。执行该命令时,它只调用viewmodel中的私有方法。此处INavigatio
标签: Mvvm
observer-patternknockout-2.0
嗨,我在淘汰2中遇到了一个问题:我想进行后期绑定,因为我通过jQuery添加了数据绑定
$("#button1").on ("click", function() {
lateBinding = $("#lateBindingElem);
if (lateBinding.length) {
lateBinding.attr("data-bind", "text: obs");
}
}
});
后期绑定是动态生成的h
场景:
我使用KendoUIMVVM将JSON文件中的记录绑定到网格。我已经将editable属性设置为Popup,因此在编辑记录时,弹出窗口会打开,但是在修改数据和更新时,记录不会得到更新。因此,要关闭弹出窗口,请单击“取消”按钮
经过一些研究,我发现了Save函数。这将更新网格中的记录
问题:
如何在MVVM场景中定义save函数??通常,保存功能在网格上定义如下:
$("#myGridView").kendoGrid({
//...
save:function(){
我正在从如下对象绑定属性:
视图模型:
public class VieModel
{
public Model MyModel
{
get
{
return myModel;
}
set
{
myModel = value;
}
}
private Model myModel
}
public class Mod
标签: Mvvm
datagridreactiveui
我将动态数据用于reactiveui
` _propList.Connect()
.WhenAnyPropertyChanged()
.Subscribe(t =>
{
}`
如果我只是编辑网格中的任何项目,代码将被触发。但是,当我尝试添加或删除项目时,它不会被触发
在我的视图模型中,我有这样的东西
private SourceList<Decision> _myList { get; set; } =
我是MVVM的新手。据我所知,我必须避免在视图结构中使用模型代码
在我的例子中,我有两个视图,MainView和ChildView。MainView没有ViewModel。但是ChildView有一个ViewModel(例如ChildViewModel)。因为ChildViewModel只在ChildView中使用,所以我没有在EnvironmentObject上注册模型实例,或者我没有将实例传递给MainView,因为MainView根本不使用该模型
我认为,最好的方法是ChildView自己
模型是我数据库中唯一的实体数据模型类吗?模型作为我拥有数据的简单地方?或者我可以在模型中输入更多内容?MVVM中的模型应该是以数据为中心的逻辑和数据的地方,是的。它可以只是实体数据模型,也可以根据需要添加更多的逻辑。主要的一点是将任何特定于表示的逻辑从模型中分离出来,并将其放入viewmodel中
希望这足够清楚MVVM中的模型应该是以数据为中心的逻辑和数据的场所,是的。它可以只是实体数据模型,也可以根据需要添加更多的逻辑。主要的一点是将任何特定于表示的逻辑从模型中分离出来,并将其放入viewm
我得到的结果是:PresentationFramework.dll中首次出现“System.NullReferenceException”类型的异常
当我为LessonPlannerViewModel类的构造函数使用参数时
我使用datatemplateselector类在每周/每日视图之间切换
public class ApplicationNavigationTemplateSelector : DataTemplateSelector
{
public override DataT
我有一个WPF用户控件…在MVVM中。用户控件(包含listview)需要来自页面(包含它的地方)的数据。我必须在视图的“代码隐藏”中设置一个属性,以获取此数据输入。这是否符合MVVM(但据我所知,MVVM模式不支持在视图的代码隐藏文件中添加代码)的要求。如果不符合,该怎么办?您希望通过数据绑定来实现这一点。控件绑定到viewmodel中的属性,viewmodel接收数据,应用所需的逻辑并将其返回视图以显示数据。
看看这些是如何工作的。您希望通过数据绑定来实现这一点。控件绑定到viewmodel
我对MVVM有点困惑
我理解这个概念,并能看到它的优点。我的问题是:ViewModel是否直接从模型传递数据
例如,假设我有一个带有findByName()方法的“用户”模型。ViewModel将调用此命令以通过
将相关用户详细信息添加到视图中
该模型可能会重新运行一组“用户”对象,每个对象都有名称、电子邮件地址等属性,还可能有方法
我的问题是,ViewModel是应该将用户对象集返回到视图中,还是应该返回该视图的重构版本
仅包含视图所需的内容
据我所知,本例中的“用户”对象是模型层的一部分,在
是否有不使用第三方框架、Silverlight或WPF的完整MVVM示例解决方案??也许是WSF的问题?--谢谢如果您想要一个关于MVVM的“干净”示例(没有附加框架),我建议您
这是Brent Edwards wich在其演示中使用的一个项目:来自战壕的带MVVM的WPF
还有一段视频,布伦特在视频中介绍了本次演讲的一些细节
如果您正在寻找一个无wpf和无sl的实现,那么您应该寻找该模式的通用定义。MVVM是专门为Silverlight/wpf设计的,所以我怀疑您是否会找到许多既不使用wpf也
标签: Mvvm
system.reactivereactiveui
我正在编写一个视图模型,它派生自ReactiveValidatedObject。这允许我使用数据注释来触发视图上的验证,但我遇到了一个问题:验证规则是按随机顺序计算的
例如,如果属性是这样声明的(模型的字段是十进制的,方法验证器只执行decimal.TryParse并检查值是否>=0):
我进行了单元测试,以确保行为如下:
如果该字段为空,则错误应为“必需”
如果字段中有无法解析的内容,则错误应为“无效”
偶尔,我会更改另一个文件中的某些内容,运行所有测试,而这个测试将失败。交换属性声明中属
我让用户组从wcf服务返回,并使用视图模型将其绑定到视图中的xamgrid,因为网格的自动生成列为true,网格列标题与propertyname相同(没有空格)
我想更改列标题。有几种方法。如果仍要执行auto generate columns true,则可以在网格中订阅AutoGeneratingColumn事件,并侦听每个列,然后将列标题设置为所需的名称。另一个不确定它是否适用于您的情况的选项是,在模型中,您可以使用组件模型注释或来装饰每个成员。谢谢,即使自动生成列,也可以侦听每个列。是的
我试图理解如何使用嵌套的knockoutjs视图模型,其中有一个小提琴,列出了一些项目,单击一个按钮,它就会显示该项目的详细信息。然后,我有一个按钮,通过向每个项添加15来更新每个项的Id属性,但出于某种原因,它们最终都具有相同的值。
有人能启发我吗
谢谢
这是您的.Name计算属性。Id更改工作正常
闭包中的项始终是第一次执行后列表中的最后一个项。记住,只要可观察到的变化,计算出的数据就会更新。因此,第一次在设置过程中,它工作正常,因为item是循环中的item。但是,在闭包中捕获的只是项(
我的问题是我想在ViewModel中调用“SelectionChanged”事件
我有一个组合框(这里称为ListPicker,它是一个电话应用程序):
ViewModel中的“我的属性”如下所示:
private List<string> _zzr;
public List<string> ZZR
{
get
{
_zzr = new List<string>();
在快速的谷歌搜索之后,我猜不是,但是
有没有办法用剑道的MVVM进行虚拟绑定
在大多数绑定情况下,您都有一个要绑定的元素。例如:
<div data-bind="foreach: items">...</div>
。。。
…但在同样的情况下,你不想要。击倒允许执行以下操作:
<ul>
<li>First</li>
<!-- ko foreach: items -->
<li>...</li&
我要做的是通过和viewModel将值从page1.zul传递到page2.zul
从page1.zul,我有
<include processId="@bind(vm.selectedProcess.id)" src="@load('page2.zul')"></include>
但是,我总是得到一个空值。你知道怎么做吗page2.zul看起来像这样:
<div apply="org.zkoss.bind.BindComposer"
viewModel=
我曾经使用自定义混合行为将ViewModel上的枚举绑定到与枚举枚举名相同的VisualState
然而,在包括引用和使用之后,BahaviorsSDK似乎目前不受支持
在Windows 10通用应用程序中,以MVVM方式更改VisualState的当前最佳方法是什么?右键单击“引用”->“添加引用”->“通用Windows”->“扩展”->“行为SDK”,即可包含行为SDK
一些API已经更改,因此行为不存在,无法从使用DependencyObject、IBehavior继承并实现IBehav
我创建了一个名为PINControl的自定义视图,它显示了一个具有可配置数字量的PIN条目。
我想在ContentPage中使用的XAML是
PincControl中我的BindableProperties是:
公共类PincControl:StackLayout
{
private const int LENGTH_DEFAULT=4;
public static readonly BindableProperty PINLengthProp=BindableProperty.Create c
标签: Mvvm
Uwp
windows-10-universaltemplate10
我刚刚在VisualStudio2015社区上安装了Template10扩展。当我用Hamburger或Minimal模板创建一个新的UWP项目时,我得到以下错误
“当前上下文中不存在名称'PropertyChanged_ViewModel'”
但是,来自同一扩展的空白模板可以很好地工作
是的,我已将所有扩展更新为最新版本。我设法修复了错误。看看这个
根据,TextBlock元素的BindingMode默认为单向,因此无需显式指定它。只需打开DetailsPage.xaml并找到以下行
<
我在使用文本框时遇到一些问题。UWP中的文本绑定。我已经做WPF多年了,通常知道我在XAML中做什么,但无法让这个绑定工作
我在XAML的同一范围内有一个文本框和一个按钮
<StackPanel Orientation="Horizontal"
Margin="0,10,0,0">
<TextBox Width="200" Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged
例如,我有一个模型类名movies,我正在从api获取电影列表
我得到了列表列表,然后我在回收器视图中传递了该列表,并触发了notifydatasetchanged()
然后,我的问题是绑定XML中的数据,如果我必须公开用于数据绑定的模型类的话。这是正确的mvvm模式吗?
如何通过将XML绑定到ViewModel类来实现这一点?您可以在回收器视图中使用数据绑定。
您可以添加:
标记到回收器视图行项目XML布局
然后在视图持有者类中可以实现如下绑定方法
public void binding(
我在Blazor服务器应用程序上工作,并尝试遵循MVVM模式。我的问题是,我不理解为什么在子组件中的属性更改后,父页面不会“自动刷新”
我不知道如何用更短的方式来表达我的问题。这就是我发布所有代码的原因
首先是我编码的文字
blazor默认计数器模板遵循MVVM模式,并通过依赖项注入作为startup.cs中的scopedservice共享状态
索引是包含countercomponentAsChild的父页
我有一个在Startup.cs(UserSessionServiceModel)中实例化
标签: Mvvm
system.reactivereactive-programming
用于解释无功扩展(Rx)功能的一个主要示例是将现有鼠标事件组合成一个新的“事件”,表示鼠标拖动期间的增量:
var mouseMoves = from mm in mainCanvas.GetMouseMove()
let location = mm.EventArgs.GetPosition(mainCanvas)
select new { location.X, location.Y};
var mouseDiffs =
使用MVVM将多个单选按钮绑定到枚举的最佳方法是什么
我能想到的唯一方法是将每个组框的IsChecked绑定到一个属性,并在该属性的setter中为视图模型中的枚举指定一个值。您可以在列表框中显示枚举值,并提供一个特殊的项模板,带有一个单选按钮和枚举名称。单选按钮的IsChecked属性可以绑定到ListBoxItem的IsSelected属性。当然,您必须将列表框的SelectionMode设置为Single您可以在列表框中显示枚举值,并提供一个带有单选按钮和枚举名称的特殊ItemTempla
使用mvvm和Prism 2时,如何在视图中绑定wpfdatagrid的MouseDoubleClick事件。在视图的代码隐藏中侦听MouseDoubleClick事件,并在ViewModel上调用适当的方法:
public class MyView : UserControl
{
...
private MyViewModel ViewModel { get { return DataContext as MyViewModel; } }
private void
我们的项目中出现了以下场景:
我们有层次化的业务对象。根节点应该是一个项目。项目中包含不同类型的数据。该数据分为“静态数据”、“结果数据”和“控制数据”
应用程序有一种项目资源管理器(类似于VS中的解决方案资源管理器),它以树状视图的形式显示数据结构。为了实现这一点,我使用相应的模型创建了不同的视图模型,例如ProjectViewModel、StaticDataViewModel和叶的DatasetViewModel。
如果用户单击其中一个数据集,将打开一个显示数据的视图
当我在其他视图中显示数
我有一个具有A类实体的应用程序。A有一个字段B,它被一些viewmodels使用,但不是全部。字段B在不同来源的单独加载操作中加载
哪个层应负责加载此字段B?我认为有三种选择:
在A中实现逻辑,以便在访问B时加载B。它可以工作,但需要类中的一些逻辑。我觉得实体类应该有最少的逻辑,当然没有从数据源加载数据的逻辑(但我可能错了)
让数据访问层(DAL)在加载A的实例时加载B。这不是最佳做法,因为从数据源(远程服务器)加载数据的速度很慢,并且只有少数A的实例需要字段B
如果需要,让viewmodel使
我的视图模型上有一个属性“Mode”。每当这个属性改变时,我想看看它是否等于上下文菜单中的任何菜单项标题。如果它相等,我希望该菜单项的IsChecked属性设置为true。如何做到这一点
我尝试使用以下行设置值:
({Binding RelativeSource={RelativeSource Self}, Path=Header})
但不能对值使用绑定。以下是我剩余的尝试,当前值为空:
<ContextMenu>
<ContextMenu.ItemContainer
我希望有人能帮我解决这个问题。这里的例子是:
如果我按照下面的行创建viewmodel,效果会非常好
var viewModel = kendo.observable
但我已经建立了一个项目使用
var viewModel = kendo.data.ObservableObject.extend
创建视图模型,就像Telerik Appbuilder中的许多示例一样。问题在于使用这种语法时,viewmodel的内部函数不知道网格的标识—其对象值返回null
i、 e.viewmodel
我想在新的windows phone 8.1 AutoCompleteBox控件的TextChange事件上调用一个命令。我使用的是MVVM灯 在新的windows应用商店8.1应用程序中,有一个用于在应用程序中添加行为的新SDK。默认情况下不会添加此扩展。您必须在项目中添加此扩展。下面是如何在项目中添加此扩展
从列表中安装行为SDK。
现在,在XAML页面中,将以下名称空间添加到能够在ViewModel上调用ICommand的InvokeActionCommand
xmlns:i="u
我正在尝试使用ListView实现MVVM ContentPage,该ListView需要绑定到ViewModel中填充的XML模型对象的通用列表,但绑定失败。显示的代码调用一个API,该API返回一个有效的XML数据列表。当绑定通过在codebehind中设置ItemSource直接在XAML Xamarin contentpage的代码隐藏中完成时,同样的代码也可以正常工作。如上所述,只有在尝试将ListView传递给分配给contentpage的ViewModel时,才会出现问题。我已经在
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 32 页