我真的很困擾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