2016-12-13 15 views
1

ListViewアイテムをテキストボックスに表示できません

こんにちは。 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; 
    } 

私は、[0]、エラーコードlvCus.SelectedItemsの近くに赤い下線を参照してください。暗黙的に型「オブジェクトは、」「System.Windows.Controls.ListViewItem」に変換することはできません。明示的な変換が存在します(キャストがありませんか?)

助けてください。ありがとう。あなたがオブジェクトのあなたのタイプにキャストする必要が

+3

にアクセスすることができます 'lvCus.SelectedItems'はobject''のコレクションです。内容はあなたが 'ListView'を実装したもののインスタンスなので、実際の実行時の型になります。そのタイプにキャストしてください。 –

+0

ありがとう、私は@EdPlunkettを確認します –

答えて

2

Customer

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

を言うそして、あなたがプロパティ

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

あなたの迅速な対応に感謝します。私にチェックさせてください。 –

+2

OPはキャストの代わりにデータバインディングを使用し、UIプロパティを直接設定する必要があります –

+0

@PanagiotisKanavosはい、そうですが、既存のコードを完全に書き直す必要があります – Sajeetharan

関連する問題