ListView(二)
早就想用WPF把数据库中的内容填到页面上,今天终于实了,这就把关键部分贴出来,一来记录,二来分享。
如果用Expression Blend来编译,先把System.Data命名空间添加到References中来。
先看CS代码,System.Data的路径为“系统安装盘下\WINDOWS\Microsoft.NET\Framework\v2.
在CS代码中基本与普通C#代码一样,不同之处就在myListBox.DataContext = myDataSet;,指明myListBox的数据来源为myDataSet。
CS代码:
DataSet myDataSet;
private void OnClick(object sender, EventArgs e)
{
string connString = "server=localhost;Initial catalog=NorthWind;user ID=sa;password=sa;";
SqlConnection conn = new SqlConnection(connString);
string sql;
if (text.Text.Trim() != "")
{
sql="SELECT * FROM Employees where EmployeeID='" + text.Text + "'";
}
else
{
sql= "SELECT * FROM Employees";
}
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
myDataSet = new DataSet();
adapter.Fill(myDataSet, "EmployeeTable");
myListBox.DataContext = myDataSet;
}
在XAML代码中,ItemsSource="{Binding Path= EmployeeTable }"用来说明ListView子项Items的数据源为myDataSet中的EmployeeTable表(因为在CS代码中已指明了myListBox的数据源是myDataSet)。接下来是分别设子项的绑定的字段。<GridViewColumn DisplayMemberBinding= "{Binding Path=EmployeeID}" Width="100" Header="Employee ID"/>从这行代码可以看来增加了一个列,列显示是“Emlpoyee ID”,指向数据库中的EmployeeID字段。
<ListView Name="myListBox" ItemsSource="{Binding Path= EmployeeTable }" Margin="172.51,61,159.388,155" RenderTransformOrigin="0.5,0.5" BorderThickness="2,2,2,0" OpacityMask="{x:Null}" ForceCursor="True" OverridesDefaultStyle="False" Background="#
<ListView.View>
<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Employee Information">
<GridViewColumn DisplayMemberBinding=
"{Binding Path=EmployeeID}" Width="100" Header="Employee ID"/>
<GridViewColumn DisplayMemberBinding=
"{Binding Path=FirstName}"
Header="First Name" Width="100"/>
<GridViewColumn DisplayMemberBinding=
"{Binding Path=LastName}"
Header="Last Name" Width="100"/>
<GridViewColumn DisplayMemberBinding=
"{Binding Path=Title}"
Header="Title" Width="100"/>
</GridView>
</ListView.View>
<ListView.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0.723" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="-23.513" Y="0"/>
</TransformGroup>
</ListView.RenderTransform>
</ListView>
运行效果为:(Button的玻璃效果和ListVies的倒影效果没附出代码)
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524