【发布时间】:2012-07-04 15:25:43
【问题描述】:
我有两个文本框 (XAML)
<s:SurfaceTextBox Name="CodePostal" TextChanged="CodePostalChanged" />
<s:SurfaceTextBox Name="Commune" Text="{Binding Path=CommuneGeographique}" />
并且在(.cs 文件)
private MyModelContainer db;
private ObservableCollection<Commune> _CommunesList = new ObservableCollection<Commune>();
private ObservableCollection<Commune> CommunesList
{
get { return _CommunesList; }
set { _CommunesList = value; }
}
在构造函数中,我有这个:
InitializeComponent();
getCommunes("Test");
而getCommunes(string search),是一个Linq查询
db = new MyModelContainer();
CommunesList.Clear();
Commune.DataContext = _CommunesList;
var myCommunes = from d in db.Communes
where d.CommunePostale.Equals(search)
select d;
foreach (Commune c in myCommunes)
{
CommunesList.Add(c);
}
Commune.DataContext = CommunesList;
此时一切正常,Commune 文本框显示我想要的内容。
我的问题是当我尝试在 TextChanged 上调用 getCommunes() 方法时
private void CodePostalChanged(object sender, TextChangedEventArgs textChangedEventArgs)
{
getCommunes("Toto");
}
什么都没有发生,文本框被清除。
(它应该显示其他内容,但即使 CommuneList 有元素,它也是空的)
【问题讨论】:
标签: c# wpf linq data-binding textchanged