问题一、usercontrol1控件使用了mvvm数据绑定,usercontrol2也使用了mvvm数据绑定,则

以下是伪代码
<usercontrol2 datacontent="{Binding Viewmodel}">
<usercontrol1 tag="{Binding data}">
</usercontrol1>
</usercontrol2>

  usercontrol1是不能实现数据绑定的,个人猜测原因是usercontrol1内部已经做了mvvm绑定,usercontrol2不能数据绑定到usercontrol1

可借鉴的解决思路 http://www.cnblogs.com/DebugLZQ/archive/2013/06/26/3152922.html

本人则将usercontrol1的mvvm绑定放到usercontrol1的children里的子控件,比如grid

<usercontrol>
<grid datacontext="Binding mvvm">
</usercontrol>

  控件不允许双重绑定,避开就行。

问题二、mvvm 绑定textbox焦点丢失问题

<TextBoxName="UserNameText"Text="{Binding Path=Username, Mode=TwoWay}"HorizontalContentAlignment="Stretch"/>

此时焦点如果还在textbox上时,后台Username的值仍为NULL

解决办法:

<TextBoxName="UserNameText"Text="{Binding
Path=Username, UpdateSourceTrigger=PropertyChanged}"/>

UpdateSourceTrigger属性

问题三、Combox 下拉显示慢的问题

由于Item项多且每项显示内容多(itemtemplate复杂的话也会导致慢,比如要显示image之类的),导致使用ComboBox显示列表异常缓慢,这是由于ComboBox在展开列表时绘制了列表中的每一项,为了避免这个问题,我们可以使用VirtualizingStackPanel来代替ComboBox默认的项目面板StackPanel:

<ComboBox  VerticalAlignment="Top">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>

  当然,应该不只是Combox有这样的问题,包括Treeview、listbox之类的控件都会有。

Reference:

关于WPF的ComboBox中Items太多而导致加载过慢的问题

深入解析WPF绑定

wpf mvvm使用问题集锦的更多相关文章

  1. WPF+MVVM数据绑定问题集锦

    1.  数据绑定的问题 在使用数据绑定时,一般使用 ObservableCollection<T> 类,不使用list列表集合,因为list数据发生变化时,UI界面不更新,而Observa ...

  2. WPF MVVM 验证

    WPF MVVM(Caliburn.Micro) 数据验证 书接前文 前文中仅是WPF验证中的一种,我们暂且称之为View端的验证(因为其验证规是写在Xaml文件中的). 还有一种我们称之为Model ...

  3. WPF MVVM初体验

    首先MVVM设计模式的结构, Views: 由Window/Page/UserControl等构成,通过DataBinding与ViewModels建立关联: ViewModels:由一组命令,可以绑 ...

  4. WPF MVVM实现TreeView

    今天有点时间,做个小例子WPF MVVM 实现TreeView 只是一个思路大家可以自由扩展 文章最后给出了源码下载地址 图1   图2     模版加上了一个checkbox,选中父类的checkb ...

  5. WPF/MVVM 快速开始指南(译)(转)

    WPF/MVVM 快速开始指南(译) 本篇文章是Barry Lapthorn创作的,感觉写得很好,翻译一下,做个纪念.由于英文水平实在太烂,所以翻译有错或者译得不好的地方请多指正.另外由于原文是针对W ...

  6. A WPF/MVVM Countdown Timer

    Introduction This article describes the construction of a countdown timer application written in C# ...

  7. 使用Prism提供的类实现WPF MVVM点餐Demo

    使用Prism提供的类实现WPF MVVM点餐Demo 由于公司开发的技术需求,近期在学习MVVM模式开发WPF应用程序.进过一段时间的学习,感受到:学习MVVM模式,最好的方法就是用MVVM做几个D ...

  8. WPF MVVM使用prism4.1搭建

    WPF MVVM使用prism4.1搭建 MVVM即Model-View-ViewModel,MVVM模式与MVP(Model-View-Presenter)模式相似,主要目的是分离视图(View)和 ...

  9. ViewModel从未如此清爽 - 轻量级WPF MVVM框架Stylet

    Stylet是我最近发现的一个WPF MVVM框架, 在博客园上搜了一下, 相关的文章基本没有, 所以写了这个入门的文章推荐给大家. Stylet是受Caliburn Micro项目的启发, 所以借鉴 ...

随机推荐

  1. 用js实现导航菜单点击切换选中时高亮状态

    随着用户点击导航或菜单上不同的页面,出现此选项高亮显示或变为一个新的样式是经常用到的.实现它所用的原理就是通过js中的location.href得到当前页面的地址,然后在与导航上的链接地址匹对,相同的 ...

  2. jquery 自动补全控件(支持IE6)待整理

    自动补全控件(兼容IE6):http://bassistance.de/ download地址:http://jquery.bassistance.de/autocomplete/jquery.aut ...

  3. 20150914 异常语句 math的方法 去空格 索引

    异常语句 int cuo = 0; Console.WriteLine("请输入:"); string s = Console.ReadLine(); try { DateTime ...

  4. unity中的欧拉角

    unity中欧拉角用的是heading - pitch -bank系统(zxy惯性空间旋转系统):当认为旋转顺序是zxy时,是相对于惯性坐标系旋转.当认为旋转顺序是yxz时,是相对于物体坐标系旋转. ...

  5. 相关性分析 -pearson spearman kendall相关系数

    先说独立与相关的关系:对于两个随机变量,独立一定不相关,不相关不一定独立.有这么一种直观的解释(不一定非常准确):独立代表两个随机变量之间没有任何关系,而相关仅仅是指二者之间没有线性关系,所以不难推出 ...

  6. 数据库表转换成javaBean对象小工具

    package test.utils; import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter; ...

  7. eclipse项目里面的类有时候会莫名其妙出现很多错误

    由于eclipse的编译是基于时间戳的判断机制的.因此当你按build   all的时候有些eclipse认为时间戳没有改变的类不会被编译.因此你可以先clean一下再编译.这个时候eclipse会将 ...

  8. Android 文件的选择

    Android 文件的选择 打开文件选择器 private void showFileChooser() { Intent intent = new Intent(Intent.ACTION_GET_ ...

  9. 【性能测试】性能测试总结<四>

    性能测试常见指标        性能测试说白了就是通过工具模拟多个用户对被测系统进行访问.然后查看系统对于多个用户发来请求的处理能力. 左边的两个小人表示两个用户,向右边服务器发送请求,然后得到服务器 ...

  10. ASIHttpRequest addRequestHeader的处理

    我现在用到了ASIHttpRequest来读取数据,这时候我发现里面的头在很多时候都是一样的.如用户的令牌,设备类型,ios版本,软件版本等 [self.request addRequestHeade ...