【发布时间】:2012-09-14 10:18:32
【问题描述】:
我有一个名为 NotesList 的列表框。我有一个名为 noteList 的 ObservableCollection,还有一个名为 NoteContents 的 TextBox。
在我的 ObservableCollection 中,我为一些项目设置了 Filename 和 Contents 属性,然后将其添加(绑定)到我的 ListBox。
但是现在,我想(当我单击一个按钮时)显示在 NoteContents 文本框中选择的 ListBox 项的“内容”。
我该怎么做?
我目前有:
private void NotesList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
NoteContents.Text = noteList.Where(x => x.Filename.Contains(NotesList.SelectedValue.ToString())).FirstOrDefault().Contents;
}
【问题讨论】:
-
在 ButtonClick 上还是在 SelectionChanged 上?
-
请显示集合中的内容,以及 XAML。
-
您现有的代码是否不起作用,或者您是否需要更好的解决方案?如果 ObservableCollection 中的对象实现 INotifyPropertyChanged,则可以在将 UpdateSourceTrigger 设置为 Explicit 的情况下进行绑定。然后,这将允许您在按钮单击处理程序/ICommand 中手动强制绑定更新。
标签: c# wpf xaml data-binding microsoft-metro