【发布时间】:2015-11-27 13:04:12
【问题描述】:
我有一个带有 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 设置为相同的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 为空或没有数据的实例。
【问题讨论】:
-
collectionviewsource 到文本框的文本?可以分享一下collectionviewsource的样本数据吗
-
你在哪里有设置绑定的代码(在哪个事件中)?您必须分享有关
textbox.DataContext的更多详细信息,这可能是问题所在。输出窗口中是否有绑定错误? -
这可能看起来很奇怪,但我设置使用文本框作为另一个 Linq 查询链接到第二个 CVS 的参数源。我不想使用 ListBox 因为它占用的空间比文本框多。
-
我检查了输出窗口。它有这样一行: System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists;改用默认值。绑定表达式:路径=AN;数据项=空;目标元素是'TextBox'(名称='txtHN');目标属性是“文本”(类型“字符串”)
标签: c# wpf xaml data-binding