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

标签 c# wpf xaml data-binding

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

以上代码运行良好。但是当我将数据绑定(bind)实现从 XAML 更改为代码隐藏时,它不再起作用了。以下代码隐藏不再起作用:

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

我设置了 textbox.datacontext到相同的 collectionviewsource 但代码隐藏版本不再工作。我真的不知道罪魁祸首是什么。

我将以下代码用于 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 为空或没有数据的实例。

最佳答案

绑定(bind)时检查collectionViewSource是否不为null,如果添加绑定(bind)时对象为null,则绑定(bind)可能无效。

还要检查它是否在加载事件中起作用。

关于通过代码隐藏的 C# 数据绑定(bind)不适用于 TextBox 中的 Text 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346087/

相关文章:

c# - WPF 命名空间混淆

c# - 在 Universal App 的表格中显示数据

c# - 将 C# COM 服务器事件公开给 Delphi 客户端应用程序

c# - 是否可以在 My Sql 数据库中保存文件指针?

wpf - 根据样式设置文本框文本格式

c# - 当文本框的绑定(bind)设置为 OneWayToSource 时,WPF TargetNullValue 返回值

c# - ODATA EXPAND 无法正常工作

c# - 如何将非托管 C++ dll 添加到 Silverlight 5 项目中

c# - 如何在共享应用程序资源中实现导航按钮?

c# - 自定义 NavigationView 面板以包含图像 UWP