2012-09-14 40 views
0

我有一个名为NotesList的ListBox。我有一个名为noteList的ObservableCollection,我有一个名为NoteContents的TextBox。从Observable Collection或List获取项目()

在我的ObservableCollection中,我为几个项目设置了Filename和Contents属性,然后它被添加(绑定)到我的ListBox。

但是现在我想(当我点击一个按钮时)显示在NoteContents文本框中选择的列表框项目的“内容”。

我该怎么做?

我目前有:

private void NotesList_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    NoteContents.Text = noteList.Where(x => x.Filename.Contains(NotesList.SelectedValue.ToString())).FirstOrDefault().Contents; 
} 
+0

在ButtonClick或上的SelectionChanged? –

+0

请显示集合中的内容以及XAML。 –

+2

您现有的代码无法工作,或者您在寻求更好的解决方案吗?如果ObservableCollection中的对象实现INotifyPropertyChanged,则可以通过将UpdateSourceTrigger设置为Explicit来进行绑定。这将允许您手动在您的按钮点击处理程序/ ICommand中强制进行绑定更新。 – Dutts

回答

2

你可以做到这一点没有按钮点击,只是结合,如:

<ListBox Name="NotesList" ItemsSource="{Binding YourObservableCollection}"> 
    <!--Your bindings here--> 
</ListBox> 
<TextBox Text="{Binding ElementName=NotesList, Path=SelectedItem.Contents}" /> 
+0

哦谢谢老兄! –

+0

不客气! – michele

相关问题