初次学.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下不能用。
{
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下不能用。
2。ListView需要添加向其添加Click事件,举个例子, 右键单击:
页面:
<....Resources>
<Style TargetType="ListViewItem">
<EventSetter Event="MouseRightButtonUp" Handler="ListViewItem_MouseRightButtonUp"/>
</Style>
....代码:
private void ListViewItem_MouseRightButtonUp(object sender, MouseEventArgs e)
{}
//所以datagrid1的SelectedItem应该是一行数据 这里假有一个叫ID的列
第一种是参考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
{
} }