初次学.Net,也是第一次学WPF,开发环境是VS2008,以下是C#代码,现在有几个问题不知道如何处理:        private void button3_Click(object sender, RoutedEventArgs e)
        {
            string connString = "Data Source=nchydb;user=nchyuser;password=nchyuser;";
            OracleConnection conn = new OracleConnection(@connString);
            string sql = "SELECT * FROM 证件信息表";
            OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
            myDataSet = new DataSet();
            adapter.Fill(myDataSet, "证件信息表");
            listViewOracle.DataContext = myDataSet;//将数据显示在ListView中
            dataGrid1.ItemsSource =  myDataSet.Tables[0].DefaultView;//将数据显示在DataGrid中
        }
数据已经取到,现在要求:
1 将取得的数据放在DataGrid中显示,单击DataGrid即dataGrid1中的任意一条记录时,要显示当前字段的值,不知道该用什么事件,代码如何写?
2 将取得的数据放在ListView显示,当单击某个单元格时,要显示当前单元格的值,请问用什么事件,代码如何写?
我在网上找到的大都是WinForm下的例子,在WPF下不能用。

解决方案 »

  1.   

    1。DataGrid没有单击事件, 你需要在单元格中,填充一个Border(Border有Click),然后得到数据。
    2。ListView需要添加向其添加Click事件,举个例子, 右键单击:
    页面:
    <....Resources>
            <Style TargetType="ListViewItem">
                <EventSetter Event="MouseRightButtonUp" Handler="ListViewItem_MouseRightButtonUp"/>
            </Style>
    ....代码:
    private void ListViewItem_MouseRightButtonUp(object sender, MouseEventArgs e)
    {}
      

  2.   

    <textblock Text="{Binding ElementName=dataGrid1,Path=SelectedItem.ID}"/>//dataGrid1.ItemsSource =  myDataSet.Tables[0]
    //所以datagrid1的SelectedItem应该是一行数据  这里假有一个叫ID的列
      

  3.   

    谢谢各位前辈,搞定了,有两种方式可以处理,现写出来与大家分享:
    第一种是参考Error_Code的方法,在相关的xaml中邦定,代码如下:
    <textblock Text="{Binding ElementName=dataGrid1,Path=SelectedItem.ID}"/> ,但要将Path=SelectedItem.ID改成Path=SelectedItem[1],即DataGrid1的单元格对应的字段就可以得到数据;
    第二种方法是在DataGrid的单击事件中写代码,代码如下:
            private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                try
                {
                    DataRowView mySelectedElement = (DataRowView)dataGrid1.SelectedItem;
                    string xf = mySelectedElement.Row[2].ToString();
                    textBoxCode.Text = mySelectedElement.Row[0].ToString();
                    textBoxName.Text = mySelectedElement.Row[1].ToString();
                    textBoxRe.Text = mySelectedElement.Row[2].ToString();
                    textBoxValue.Text = mySelectedElement.Row[3].ToString();
                    string IsUse = mySelectedElement.Row[4].ToString();
                    if (IsUse == "启用")
                    {
                        checkBoxValid.IsChecked = true;//checkBoxValid是一个复选框
                    }
                    else
                    {
                        checkBoxValid.IsChecked = false;
                    }
                }
                catch
                {
                }        }
      

  4.   

    你用的是普通的dataset, 强类型dataset可以直接SelectedItem.ID, 所有数据库字段自动生成属性