我真的很困扰WPF ListView,我想像一个失踪的东西真的很愚蠢,但经过几个小时的谷歌搜索后,尽管我最好问。当在WPF中使用ListView的GridView时访问单元格文本
我试图访问已经用一个GridView从而创建一个ListView单个细胞中的文本内容:
<ListView Name="MyListView">
<ListView.View>
<GridView>
<GridViewColumn Header="Foo" DisplayMemberBinding="{Binding Foo}"/>
<GridViewColumn Header="Bar" DisplayMemberBinding="{Binding Bar}"/>
</GridView>
</ListView.View>
</ListView>
我添加到列表视图像这样:
var foobars = new ObservableCollection<Foobar>();
foobars.Add(new Foobar { Foo = "Hello", Bar = "world" });
MyListView.ItemsSource = foobars;
现在我想从第一行的第二列中获取“世界”一词。如果这是WinForms,我会输入:
var word = (string)(((ListViewItem)MyListView.Items[0]).SubItems[1]);
我找不到在WPF中这样做的任何方法!我知道我可以做的:
var word = ((Foobar)MyListView.Items[0]).Bar;
但我真正的应用程序,它会出现在ListView的文本已经通过基于它在其列,所以一对夫妇ValueConverters的一个不一样的文本在绑定对象中。我只需要抓取显示给用户的文本,而不是底层的数据对象。
做任何代码大师这里有什么建议?
干杯,
加文
我认为这只是让你回到源代码,但要尝试CollectionViewSource.GetDefaultView(MyListView) – Paparazzi 2011-08-17 12:56:56