问题描述:
 Combox中,设定了绑定对象,但是在第一次进入时却没有显示上次选中的项。
     1)查看SelectedItem对应绑定的值,也是有的(启动时,读取上次设置的结果,来初始化界面)。
     2)退出界面,不退出程序,再次打开也能显示上一次设置的结果。如果退出程序,再次打开界面却没有。
     3)查看了绑定对象的反射情况,确定绑定是OK的。
 
问题分析:
     1)由于SelectedItem是一个对象,ItemSource是该对象的集合。Combox在更新SelectedItem时,会将对应的值和ItemSource中各个对象进行比较。如果ItemSource中有该对象,则选中该值,没有则没有选中项。
     2)不退出程序,两个对象比较,可以根据分配的序列化空间来比较,进而能判断ItemSource中有上次SelectedItem对应对象。
     3)退出了程序,ItemSource和SelectedItem对象是分开实例化的,在信息比较时,根据空间来比较肯定在ItemSource中找不到该对象,进而没有选中项。
 
解决方法:
     重写SelectedItem对象的Equal()方法。
 
 
另外相对于界面绑定,代码绑定也挺方便的:

 private void InitIFBWCbx(string cbName)
{
ComboBox cb = ( ComboBox) this.FindName(cbName); cb.ItemsSource = AllDCChannel;
cb.DisplayMemberPath = "LableName";
//cb.SelectedValuePath = "Key";
cb.SetBinding(
ActiproSoftware.Windows.Controls.Ribbon.Controls.ComboBox .SelectedValueProperty,
new Binding()
{
Path = new PropertyPath( "ControlPower"),
Source = ControlPowerSettingResult
}
);
}

原XML中绑定的代码:

<ribbon:ComboBox Name="ctrlPowerSelectCbx" Height=""Width="80"
  ItemsSource="{Binding AllDCChannel}" DisplayMemberPath="LableName"
  SelectedItem="{Binding ControlPowerSettingResult.ControlPower}"
  SelectionChanged="ctrlPowerSelectCbx_SelectionChanged"/>

  

WPF中,Combox的SelectedItem属性绑定成功后,未能默认显示上一次选择的结果。的更多相关文章

  1. WPF中的命令与命令绑定(二)

    原文:WPF中的命令与命令绑定(二) WPF中的命令与命令绑定(二)                                              周银辉在WPF中,命令(Commandi ...

  2. WPF中的命令与命令绑定(一)

    原文:WPF中的命令与命令绑定(一)   WPF中的命令与命令绑定(一)                                           周银辉说到用户输入,可能我们更多地会联想到 ...

  3. WPF中的命令与命令绑定导航

    1.WPF中的命令与命令绑定(一) (引入命令) 2.WPF中的命令与命令绑定(二)(详细介绍命令和命令绑定)

  4. Devexpres下LookUpEdit绑定数据后会默认弹出数据框的解决办法

    LookUpEdit绑定数据后会默认弹出数据框很不友好问题现象: 问题解决前的代码: lueManagement.Text = groupEntity.Name; 2 lueManagement.Ed ...

  5. WPF中PasswordBox控件无法绑定Password属性解决办法

    在WPF中,默认的Password控件的Password属性是不允许为之绑定的,下面是一个解决绑定Password的方法的代码: 1.前台代码 <Window x:Class="Pas ...

  6. WPF中的依赖项属性

    Form cnblogs 桂素伟 随着WPF的推广,不得不重新拾起WPF来,因为这块的产品越来越多. 只能跟着MSDN来学了,所以想是在这里记录下学习的过程和对知识的理解. 先从最基本的吧,依赖项属性 ...

  7. WPF中的依赖项属性(转)

    出处:https://www.cnblogs.com/axzxs2001/archive/2010/04/25/1719857.html 随着WPF的推广,不得不重新拾起WPF来,因为这块的产品越来越 ...

  8. wpf中UserControl的几种绑定方式

    我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式. 1.完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易 ...

  9. WPF中Image的Stretch属性

    有时候我们在WPF程序中设置了图片的Width和Height,但图片显示出来的宽和高并不是我们预期的效果,这实际上是由于Image的默认Stretch属性导致的 Image的Stretch属性默认为U ...

随机推荐

  1. 理解HTTP协议

    在互联网时代HTTP协议的重要性无需多言,对于技术岗位的同学们来说理解掌握HTTP协议是必须的.本篇博客就从HTTP协议的演进.特性.重要知识点和工作中常见问题的总结等方面进行简单的介绍.理解掌握了这 ...

  2. 奇妙的NULL值,你知道多少

    <NULL值的多义性分析> 谈到NULL值,很多人都是很熟悉,但是深入了解后,又感觉到陌生,对其含义和用法,都无法很准确的理解.NULL在数据库和编程语言中,存在的意义和附带的含义不同. ...

  3. 一个简单的Webservice的demo(中)_前端页面调用

    首先新建项目,这里有两种调用方式,为了能方便理解,新建页面WebserviceTest如下图: 先引用写好的服务,这里用上次写好的服务.见上次写的一个简单的Webservice的demo,简单模拟服务 ...

  4. https问答篇

    https问答 SSL和TLS有什么区别? 可以说,TLS是SSL的升级版本,SSL是网景公司设计的,为了最早期的网络安全而生,它的全名叫做"安全套接层".后来,IETF在1999 ...

  5. 在Mac下运行ASP.NET Core应用程序

    在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用. 开发环境搭建 首先 ...

  6. Revit读取当前rvt的所有视图与其名称

    1)读取所有视图: public static ViewSet GetAllViews(Document doc) { ViewSet views = new ViewSet(); FilteredE ...

  7. [Q&A] 在证书存储区中找不到清单签名证书

    方案1:右击项目属性->签名->为 ClickOnce 清单签名,将勾掉的选项去掉. 方案2:在签名中创建一个新的签名. 方案3:记事本打开相应的 csproj 文件,调整节点值.< ...

  8. 编辑IL文件 修改DLL文件

    本文章只是技术探讨,学习,技术上的研究而已.请支持正版. 如:KS.Gantt.DLL 为例 使用ILSpy反编译 工具 利用ildasm反编译 KS.Gantt.dll  生成IL中间代码 一般会生 ...

  9. 数据结构与算法分析 java语音描述(引论)

    1.1本书讨论的问题 public class Test { // 输出字谜中的单词 public static void outPutlogoGriph(String temp, String[] ...

  10. SSRF安全威胁在JAVA代码中的应用

    如上图所示代码,在进行外部url调用的时候,引入了SSRF检测:ssrfChecker.checkUrlWithoutConnection(url)机制. SSRF安全威胁:   很多web应用都提供 ...