无法将ListView项目显示到文本框

时间:2016-12-13 15:20:20

标签: c# wpf

大家好。当双击ListView项时,它应该显示相应的数据到文本框,稍后我会写一些代码来更新。

<p>Below is listview code on my xaml file</p>  
  <ListView Margin="534,233,10,18" Name="lvCus"  MouseDoubleClick="ListViewItem_DoubleClick">
        <ListView.View>
            <GridView AllowsColumnReorder="true" ColumnHeaderToolTip="TbCus">
                <GridViewColumn Header="CusID" Width="40" DisplayMemberBinding="{Binding Path=CusID}" />
                <GridViewColumn Header="fn" Width="120" DisplayMemberBinding="{Binding Path=fn}" />
                <GridViewColumn Header="Lastname" Width="120" DisplayMemberBinding="{Binding Path=ln}" />
                <GridViewColumn Header="Dob" Width="100" DisplayMemberBinding="{Binding Path=dob}" />
                <GridViewColumn Header="Age" Width="60" DisplayMemberBinding="{Binding Path=age}" />
            </GridView>
        </ListView.View>
    </ListView>

以下是后端的代码。

    private void ListViewItem_DoubleClick(object sender, RoutedEventArgs e)
    {
            ListViewItem item = lvCus.SelectedItems[0];
            txtfn.Text = item.SubItems[1].Text;
            txtln.Text = item.SubItems[2].Text;
            txtdob.Text = item.SubItems[3].Text;
    }

我在代码lvCus.SelectedItems [0]附近看到红色下划线,错误:无法将类型'object'隐式转换为'System.Windows.Controls.ListViewItem'。存在明确的转换(您是否错过了演员?)

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

您需要强制转换为您的对象类型 Customer

Customer custObj = (Customer)lvCus.SelectedItems[0];

然后您可以访问属性

txtfn.Text = custObj.fn;
txtln.Text = custObj.ln;
txtdob.Text = custObj.dob;