找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou3

高级会员

2

主题

6

帖子

1722

积分

高级会员

积分
1722

活字格认证

最新发帖
CanYou3
高级会员   /  发表于:2015-4-27 15:24  /   查看:6813  /  回复:6
在C1ComboBox控件绑定了数据源CityList,请见下图效果和代码
问题:
1、在C1ComboBox下拉框选择某项时,这时能及时更新到CityName属性中,但是在下拉编辑文本框中删除或手动输入某文本时就不能及时更新到CityName属性,换成原生的ComboBox控件就可以做到这效果,而C1ComboBox不知为何无法实现这样效果?
2、当在下拉框选择“北京”项时,然后在编辑框中删除“北京”文本,并使编辑框处于离焦状态,然后出现了红色框线,这可能触发了C1ComboBox控件默认自带的验证,本次不希望让它自动触发验证,请问这时如何禁止其验证功能?


【XAML代码】

  1.             <c1:C1ComboBox
  2.                            Text="{Binding CityName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
  3.                            ItemsSource="{Binding CityList}"
  4.                            DisplayMemberPath="name"
  5.                            SelectedValuePath="value"
  6.                            SelectedValue="{Binding CityId,Mode=TwoWay}"
  7.                            Watermark="-------- 请选择 --------"
  8.                            Margin="0,10"
  9.                            Width="150">
  10.             </c1:C1ComboBox>
复制代码


【后台代码】

  1.         /// <summary>
  2.         /// 城市名称
  3.         /// </summary>
  4.         private string _cityName;
  5.         public string CityName
  6.         {
  7.             get { return _cityName; }
  8.             set { _cityName = value; }
  9.         }
  10.         
  11.         /// <summary>
  12.         /// 城市ID
  13.         /// </summary>
  14.         public int CityId { get; set; }

  15.         /// <summary>
  16.         /// 城市集合
  17.         /// </summary>
  18.         public ObservableCollection<dynamic> CityList
  19.         {
  20.             get
  21.             {
  22.                 return new ObservableCollection<dynamic>
  23.                 {
  24.                     new {value = 1, name = "北京"},
  25.                     new {value = 2, name = "上海"},
  26.                     new {value = 3, name = "深圳"},
  27.                     new {value = 4, name = "广州"}
  28.                 };
  29.             }
  30.         }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

6 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-4-27 15:57:00
沙发
回复 1楼CanYou3的帖子

你好。
谢谢你提供的代码。
C1ComboBox在失去焦点的时候会触发校验。你的操作都是因为未失去焦点或已经失去焦点导致的行为。
我对你的问题的理解是,你的需求需要在未失去焦点的时候校验,以及在失去焦点的时候不校验。我测试下给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-27 17:11:00
板凳
回复 1楼CanYou3的帖子

你好。
C1Combobox的校验是在控件的内部实现的。因此没有找到接口来实现禁止校验的功能。
我再帮你看看有没有其他的解决方案。明天给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou3
高级会员   /  发表于:2015-4-28 11:00:00
地板
回复 3楼Alice的帖子

好的,谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-28 16:49:00
5#
回复 4楼CanYou3的帖子

很抱歉,这个问题我这里没有找到解决方案,没有接口可以定制。
我帮你提交到产品组,看他们有没有什么好的建议。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou3
高级会员   /  发表于:2015-4-28 20:44:00
6#
回复 5楼Alice的帖子

好的,谢谢!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-29 10:13:00
7#
回复 1楼CanYou3的帖子

你好。
你想对下拉框选择的时候进行操作,当clear文字或是失去焦点的时候,SelectedValue将变成null,所以不能直接的转换成绑定的类型。可以使用WPF的Convert来实现你的需求,避免校验错误。
做了一个Demo帮你演示这个结果。
你可以根据这个完成自己的逻辑。

Demo如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部