0

C# でリストビューを作成し、SQL サーバーからのデータを入力しました。しかし、マウスのダブルクリックを割り当てると、クリックされたデータを取得する方法がわかりません。助けてください:

私の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

4 に答える 4

4

送信者は ListView になります。

((ListView)sender).SelectedItem

にバインドしているためDataViewSelectedItemはタイプになりDataRowViewます。その後、列名を使用して関連する値を参照できます。たとえば、cislo_bytu列の値をtextBox1.Textプロパティに割り当てるには、次のようにします。

textBox1.Text = ((DataRowView)((ListView)sender).SelectedItem)["cislo_bytu"].ToString();
于 2012-06-27T13:12:50.180 に答える
1

あなたが欲しいのはOriginalSourceMSDNだと思います

e.OriginalSource
于 2012-06-27T13:08:49.573 に答える
0

次のコードを使用して、ダブルクリック イベントで ItemArray のインデックス値を変更し、各項目を取得します。

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

`

于 2012-06-27T18:09:10.963 に答える
0

各プロパティにアクセスするには、選択したオブジェクトをキャストする必要があります..

例:

((Class)listView1.SelectedItem).cislo_bytu

Class を適切な cislo_bytu を持つ元のクラスに変更するだけです

于 2013-01-16T20:53:01.637 に答える