【wpf踩坑日记】搞错了,眼睛问题(:))

文章描述了一个在WPF中使用ComboBox时遇到的数据绑定问题,ComboBox的选择未触发属性的set方法。问题在于Mode设置错误,应为TwoWay而非OneWay。添加Text属性绑定后问题解决。
摘要由CSDN通过智能技术生成

背景

今天遇到一个草鸡奇葩的问题:

ComboBox  选择时 没有触发绑定的属性的set。

其实看错了,Mode写出OneWay,应该是TowWay。

不然是会触发set的。兄弟们不用往下看了。。。。。

哎,有的时候就会碰到这种情况,我还研究了几个小时。

绑定的代码如下:

private int _isAdjustment;

public int isAdjustment
{
    get { return _isAdjustment; }
    set {
        SetProperty(ref _isAdjustment, value); 
    }
}

 切换ComboBox  的时候,不会触发set,

但是ComboBox上方的TextBox都没事问题(修改数据是可以触发)

一开始以为是 int 的问题,把int 改成 string 还是不行。

但是,我把ComboBox放到ItemsControl外面,然后再搞个相同的isAdjustment属性,发现也是可以的。

那问题就出在,ComboBox在ItemsControl里面是表现有些不同!

解决方案

这样写,可以了:
<hc:ComboBox Margin="10,0,0,0" Width="200"
   hc:TitleElement.Title="isAdjustment:" 
   hc:TitleElement.TitlePlacement="Left"
   hc:TitleElement.TitleWidth="100"
   SelectedValuePath="Content" Text="{Binding isAdjustment}"
   SelectedValue="{Binding isAdjustment, Mode=OneWay}">
     <ComboBoxItem>0</ComboBoxItem>
     <ComboBoxItem>1</ComboBoxItem>
</hc:ComboBox>

唯一的不同是我加上一句:

Text="{Binding isAdjustment}"

这样就可以了,不知为啥,懂的大佬指点一二。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code bean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值