【发布时间】:2012-04-26 06:37:23
【问题描述】:
我有一个 WPF 组合框:
<ComboBox ... ItemsSource="{Binding Source={StaticResource viewModel}, Path=getItems, Mode=OneTime}" x:Name="combobox" SelectionChanged="combobox_SelectionChanged">
...
</ComboBox>
有很多项目。
还有我的 ViewModel 类:
public class ViewModel
{
private readonly ObservableCollection<ObjectA> _objectACollection= new ObservableCollection<ObjectA>();
public ViewModel()
{
_objectACollection.Add(new ObjectA("Text 1", "Text", "Text"));
_objectACollection.Add(new ObjectA("Text 2", "Text", "Text"));
_objectACollection.Add(new ObjectA("Text 3", "Text", "Text"));
}
public void combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Trace.WriteLine(combobox.SelectedIndex);
}
public ObservableCollection<ObjectA> getItems
{
get { return _objectACollection; }
}
}
以及 selectionChanged 监听器:
private void combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Trace.WriteLine(combobox.SelectedIndex);
}
显示组合框,当我选择某些内容时,我会获得集合对象的索引。 但是有什么方法可以将对象归还给我吗?例如: 我选择 ComboBox 中的第一个元素(索引 0), 如何从索引为 0 的 _objectACollection 中获取(在 combobox_SelectionChanged 侦听器中)对象?
【问题讨论】:
-
最好将
getItems重命名为Items或Collection。带有“get”前缀的建议方法
标签: c# .net wpf combobox observablecollection