2017-04-07 92 views
1

我从SQL数据库中填充ListView。 listview在XAML中定义了3列。从列表视图列中提取内容c#/ wpf

<ListView x:Name="lstAS7" Grid.Row="1"> 
<ListView.View> 
    <GridView> 
     <GridViewColumn x:Name="AS7Nom" Header="{DynamicResource AS7_Nom}" Width="350" DisplayMemberBinding="{Binding AS7_Nom}"/> 
     <GridViewColumn x:Name="AS7Lib" Header="{DynamicResource AS7_Lib}" Width="350" DisplayMemberBinding="{Binding AS7_Lib}"/> 
     <GridViewColumn x:Name="AS7Prix" Header="{DynamicResource AS7_Prix}" Width="80" DisplayMemberBinding="{Binding AS7_Prix}"/> 
    </GridView> 
</ListView.View> 

的代码背后,是下一个

foreach (DataRow valeur in ds.Tables["TB1"].Rows) 
{ 
    lstAS7.Items.Add(new { AS7_Nom = valeur["NAME"], AS7_Lib = valeur["TEXT_SHORT"], AS7_Prix = valeur["PRICE"] }); 
} 

对于测试我添加一个按钮来检索selecteditems的内容和显示它与一个消息在屏幕上。 这是结果。

{AS7_Nom = “DVI_AT_HS_unit_07242802”,AS7_Lib = “设置德 力水库;高程德MEUBLE:676 - 800毫米;倾SYSTEME AVENTOS HS”,AS7_Prix = 0}

我怎样才能检索信息,从1列,为EXPL列“AS7_Nom”

+0

您是指所有行或单元格内容(一行,一列)上的1列的内容? – grek40

+0

来自1个选定行的一个特定列的内容,就像在我的代码中的列“AS7_Nom” – Mike

+0

一样:http://stackoverflow.com/a/1203538/5265292 – grek40

回答

0

由于要添加匿名类型对象的集合ItemsListView你可以使用关键字dynamic,能够以检索属性值:

dynamic selectedItem = lstAS7.SelectedItem; 
if(selectedItem != null) 
    MessageBox.Show(selectedItem.AS7_Nom.ToString()); 

另一个选项是定义与AS7_Nom,AS7_Lib和AS7_Prix属性的类,并添加这个类的intances到ListView

lstAS7.Items.Add(new YourClass { AS7_Nom = valeur["NAME"].ToString(), AS7_Lib = valeur["TEXT_SHORT"].ToString(), AS7_Prix = valeur["PRICE"].ToString() }); 

然后,您可以施放SelectedItem属性YourClass和以编译时安全的方式访问属性:

YourClass selectedItem = lstAS7.SelectedItem as YourClass; 
if(selectedItem != null) 
    MessageBox.Show(selectedItem.AS7_Nom);