问题描述:
 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. 恢复SharePoint Server 2013 中的“新颖快建视图”

    初始化后就很漂亮的"新颖快建视图" 在配置好了OWA(Office Web Apps)的环境下,可以使用独特的"新颖快建视图"新建文件与文件夹,如下图所示: F ...

  2. ZOJ Problem Set - 1078 Palindrom Numbers

    属于水题,主要是涉及到回文问题. 这里标注下进制转换的方法: while(n) { p[i]=n%basis; n/=basis; } 见代码: #include <stdio.h> in ...

  3. 通过SQL Server自定义数据类型实现导入数据

    写在前面 在看同事写的代码时看到了SQL Server中可以自定义数据类型,而且定义的是DataTable类型的数据类型. 后我想起了以前我们导入数据时要么是循环insert写入,要么是SqlBulk ...

  4. Rafy 领域实体框架演示(4) - 使用本地文件型数据库 SQLCE 绿色部署

    本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能. <福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!> ...

  5. XML文档操作集锦(C#篇)

    在JSON没流行起来的时候xml一直作为程序存储配置信息的主流介质:特别是小型数据表方面还是不错的选择,所以经常涉及到的操作无非也就是增删改查,这篇博客主要是对这些对比较常用的操作做了个简单的总结 文 ...

  6. 【C#公共帮助类】分页逻辑处理类

    分页逻辑处理类 PageCollection.cs using System; using System.Collections.Generic; using System.Linq; using S ...

  7. VirtualBox动态添加虚拟硬盘

    本文非技术类文章,仅作为记录. 因为使用VirtualBox时遇到这样的问题:原本虚拟机分配存储的80G已经足够了,但是随着使用的文件越来越多,需要的空间也越来越大,因此不得不扩展虚拟机的磁盘容量. ...

  8. nodejs 遍历数组的两种方法

    var array = [1,2,3]; array.forEach(function(v,i,a){ console.log(v); console.log(i); console.log(a); ...

  9. border:0与border:none区别与联系

    联系:前台效果均实现了无边框 区别: 要解释区别,首先得先介绍一下border这个属性. border是一个简写属性.可以设置如下属性 border-width border-style border ...

  10. Java程序,基本数据类型、、数据类型转换、变量和常量、常用运算符

    一.基本数据类型 整数类型:byte.short. int(常用).long(较常用)     定义某个变量          int  a=10: 浮点类型(小数):float.double(常用) ...