微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过代码隐藏的C#数据绑定不适用于TextBox中的Text属性

我有一个带有xaml标记的文本框,如下所示:
< TextBox x:Name =“txtHN”Text =“{Binding Path = AN}”/>

上面的代码非常有效.但是当我将数据绑定实现从XAML更改为代码隐藏时,它不再起作用了.以下代码隐藏不再起作用:

Binding textHnBinding = new Binding();
textHnBinding.Path = new PropertyPath("AN");
txtHN.SetBinding(TextBox.TextProperty,textHnBinding);

我已将textBox.datacontext设置为相同的collectionsviewsource,但代码隐藏版本不再起作用.我真的不知道什么是罪魁祸首.

我为CVS.source使用以下代码

IEnumerable<decimal> ANListWard4 = (from s in context.IPDAN
                                                    where ward.Contains(s.CURRENTWARD)
                                                    select s.AN).distinct().OrderBy(n => n);
                List<IPDAN> Ward4AN = new List<IPDAN>();
                foreach (decimal d in ANListWard4)
                {
                    IPDAN ward4AN1 = new IPDAN();
                    ward4AN1.AN = d;
                    Ward4AN.Add(ward4AN1);
                }

我将CVS.source设置为Ward4AN.没有Ward4AN为null或没有数据的实例.

解决方法

在进行绑定时检查collectionViewSource是否为null.如果在添加绑定时对象为null,则绑定可能不起作用.

还要检查加载的事件是否有效.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐