2012-06-27 87 views
0

我已經在C#中創建了列表視圖,並用SQL服務器中的數據填充了它。但是當我分配鼠標雙擊時,我不知道如何獲取點擊數據。請幫助:從WPF中的列表視圖獲取數據

我的XAML:

<ListView Name="ListViewEmployeeDetails" ItemsSource="{Binding Path=Table}" Margin="0,0,0,67" MouseDoubleClick="ListViewEmployeeDetails_MouseDoubleClick"> 
    <ListView.Background> 
     <LinearGradientBrush> 
      <GradientStop Color="white" Offset="0"/> 
     </LinearGradientBrush> 
    </ListView.Background> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="70" Header="Číslo bytu" DisplayMemberBinding="{Binding Path=cislo_Bytu}"/> 
      <GridViewColumn Width="70" Header="Podlaží" DisplayMemberBinding="{Binding Path=podlazi}"/> 
      <GridViewColumn Width="70" Header="Účel" DisplayMemberBinding="{Binding Path=ucel}"/> 
      <GridViewColumn Width="70" Header="Plocha" DisplayMemberBinding="{Binding Path=plocha}"/> 
      <GridViewColumn Width="70" Header="Stav" DisplayMemberBinding="{Binding Path=stav}"/> 
      <GridViewColumn Width="70" Header="Country" DisplayMemberBinding="{Binding Path=Country}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

而且我的代碼:

SqlDataAdapter ad = new SqlDataAdapter(); 
SqlCommand cmd = new SqlCommand(); 

String str = "SELECT cislo_Bytu, podlazi, ucel, plocha, stav, poznamky FROM prostory"; 
cmd.CommandText = str; 
ad.SelectCommand = cmd; 
cmd.Connection = datovéPřipojení; 
DataSet ds = new DataSet(); 
ad.Fill(ds); 

ListViewEmployeeDetails.DataContext = ds.Tables[0].DefaultView; 
datovéPřipojení.Close(); 

所以我的問題是,我應該寫入

private void ListViewEmployeeDetails_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
    // Here 
} 

獲取數據(cislo_Bytu)從點擊行?

感謝,

回答

4

將發件人ListView控件。

((ListView)sender).SelectedItem 

因爲你是綁定到DataView,該SelectedItem將是DataRowView類型。然後可以使用列名稱引用相關值。例如,在cislo_bytu列的值賦給textBox1.Text財產,執行以下操作:

textBox1.Text = ((DataRowView)((ListView)sender).SelectedItem)["cislo_bytu"].ToString(); 
+0

而原始類,如果我想將數據放到文本框?重點在於有人會點擊該行並從一個單元格中輸入文本(例如cislo_bytu)將顯示在文本框中...?非常感謝... –

+0

我已經更新了回答你的問題的答案。 –

+0

謝謝你,你太棒了!我工作正常! –

0

使用下面的代碼在你雙擊事件改變了ItemArray指數值以獲得每個項目

((System.Data.DataRowView)(ListViewEmployeeDetails.SelectedItem)).Row.ItemArray[0] 

`

0

你要投被選擇來訪問每個proprety對象..

防爆充足:

((Class)listView1.SelectedItem).cislo_bytu 

只是改變類到有proprety cislo_bytu