1

我的 dgridtext.xaml 文件中有以下内容。

XAML

<Grid x:Name="grid1">
<StackPanel>
    <ListView Name="listview1" IsTextSearchEnabled="True" TextSearch.TextPath="Enquiry_Number">
        <ListView.View>
            <GridView ColumnHeaderToolTip="Multiple Category Information">                        
                <GridViewColumn DisplayMemberBinding="{Binding Path=Enquiry_Number}" Header="Enquiry number"/>
                <GridViewColumn DisplayMemberBinding="{Binding Path=Consignee_Ref}" Header="Consignee reference"/>
                <GridViewColumn DisplayMemberBinding="{Binding Path=Booking_Reference}" Header="Booking reference"/>

            </GridView>
        </ListView.View>                
    </ListView>            
</StackPanel>
</Grid>

像这样的东西。

dgridtest.xaml.cs

for (int i = 0; i < listview1.Items.Count; i++)
{
    MessageBox.Show(listview1.Items[i].ToString());            
}

但返回的只是 System.Data.DataRowView

请帮忙。

更新:

在我的 dgridtextxaml.cs 文件中,我调用 DataManager.cs 类传递一个数据集对象,该对象是我的 listview(listview1) 的源。

DataManager.BindFilteredData(dts);
listview1.ItemsSource = dts.Tables[0].DefaultView;

这就是我在 DataManager.cs 类中所拥有的

    public static void BindFilteredData(DataSet dts)
    {
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString))
        {
            string sql = "SELECT Enquiry_Number, Consignee_Ref, Booking_Reference FROM ConsHead";

            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connection))
            {                    
                adapter.Fill(dts);
            }
        }
    }
4

1 回答 1

2

您可以将项目转换为您在 ListView 中使用的任何类,然后使用您需要的任何属性。就像是:

var item = listView1.Items[i] as YourClassHere;

编辑

在您的情况下,由于您将 ItemsSource 直接绑定到 DataSet,您可能可以使用 DataRowView 类,然后使用它的属性:

var firstItem = listview1.Items[0] as DataRowView;
var firstCellValue = firstItem.Row[0];
于 2013-06-11T07:18:59.023 回答