簡體   English   中英

從Listview列c#/ wpf中提取內容

[英]Extract content from a Listview column c#/wpf

我正在從SQL數據庫填充ListView。 列表視圖在XAML中定義了3列。

<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"] });
}

為了測試,我添加了一個按鈕來檢索所選項目的內容,並使用消息框在屏幕上顯示它。 這是結果。

{AS7_Nom =“DVI_AT_HS_unit_07242802”,AS7_Lib =“設置réservoirsdeforce; Ht de meuble:676 - 800mm;poursystèmeAVENTOSHS”,AS7_Prix = 0}

如何從1列中檢索信息,以便查看“AS7_Nom”列

由於要將匿名類型對象添加到ListViewItems集合中,因此可以使用dynamic關鍵字來檢索屬性值:

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

另一種選擇是使用AS7_Nom,AS7_Lib和AS7_Prix屬性定義一個類,並將此類的內容添加到ListView

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

然后,您可以將SelectedItem屬性YourClassYourClass並以編譯時安全的方式訪問屬性:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM