初步尝试WPF
来源:互联网 发布:心动网络 仙境传说 编辑:程序博客网 时间:2024/05/24 06:49
这两天初步尝试了一下WPF,确实功能强大。(版权属章松山所有,严禁转载)
先是研究了如何设置启动xaml,一种有两种方法,最直接的一直就是在App.xaml中设置StartupUri属性,另外一种是设置Startup属性,该属性值为方法名,然后在后台方法中写启动xaml。比如方法名为app_Startup,代码如下:
void app_Startup(object sender, StartupEventArgs e)
{
Test t = new Test();//Test为xaml文件
t.Show();
}
紧接着研究了样式(版权属章松山所有,严禁转载),样式是写在App.xaml中的〈Application Resources>中的,如下面的代码所示:
<Style TargetType ="{x:Type Button}">
<Setter Property ="Background" Value ="Blue"/>
</Style>
<Style x:Key="SmartButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow"></Setter>
</Style>
第一种类似CSS样式中的body,p这样的样式写法,全局样式,整个项目中的Button如没有加样式,就默认是这个样式。
第二种应用某个对象,只要再对象上的style属性上加入其值就可以了,如Style="{StaticResource SmartButton}"
接下来我发现WPF很有意思,功能也很强大的地方(版权属章松山所有,严禁转载),即数据绑定。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="22" />
</Grid.RowDefinitions>
<ListView Name="listView1" MinWidth="280" >
<ListView.View>
<GridView x:Name="gridView1">
<GridViewColumn Header="ContactID" DisplayMemberBinding="{Binding Path=ID}"></GridViewColumn>
<GridViewColumn Header="FirstName" DisplayMemberBinding="{Binding Path=ENWordName}"></GridViewColumn>
<GridViewColumn Header="LastName" DisplayMemberBinding="{Binding Path=ENWordContent}"></GridViewColumn>
<GridViewColumn Header="EmailAddress" DisplayMemberBinding="{Binding Path=CNWordName}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<WrapPanel Grid.Row="1" Orientation="Horizontal" DataContext="{Binding ElementName=listView1,Path=SelectedItem}">
<StackPanel Orientation="Horizontal" Margin="5,2,5,2">
<TextBlock Name="textBlock_ContactID" Text="ContactID:" />
<TextBox Name="textBox_ContactID" MinWidth="100" Text="{Binding ID}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="5,2,5,2">
<TextBlock Name="textBlock_FirstName" Text="FirstName:" />
<TextBox Name="textBox_FirstName" MinWidth="100" Text="{Binding ENWordName,UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="5,2,5,2">
后台代码如下:
先定义两个全局变量(版权属章松山所有,严禁转载,否则追究法律责任)
SqlDataAdapter sda;
DataTable dt;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = "数据库机器名";
//scsb.IntegratedSecurity = true;
scsb.InitialCatalog = "数据库";
scsb.UserID = "用户名";
scsb.Password = "密码";
SqlConnection sc = new SqlConnection(scsb.ConnectionString);
SqlCommand sqlComm = sc.CreateCommand();
sqlComm.CommandText = "select * from 表名";
sda = new SqlDataAdapter(sqlComm);
dt = new DataTable();
sda.Fill(dt);
listView1.ItemsSource = dt.DefaultView;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.UpdateCommand = scb.GetUpdateCommand();
sda.Update(dt);//此处很牛B,但表中一定要有主键才能这么用。
}
就这样就搞定了数据的同步,文本框中一修改,GridView中立刻就会看到,不过要点提交后数据才能真正到数据库中去。
That's all.此文属于章松山所以,严禁转载,如有问题要咨询,请Email到zhangsongshan10@163.com
<TextBlock Name="textBlock_LastName" Text="LastName:" />
<TextBox Name="textBox_LastName" MinWidth="100" Text="{Binding ENWordContent}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="5,2,5,2">
<TextBlock Name="textBlock_EmailAddress" Text="EmailAddress:" />
<TextBox Name="textBox_EmailAddress" MinWidth="100" Text="{Binding CNWordName}" />
</StackPanel>
</WrapPanel>
<Button Grid.Row="2" HorizontalAlignment="Right" Click="button1_Click" Name="button1">Refresh</Button>
</Grid>
- 初步尝试WPF
- WPF初步
- 初步尝试RMAN备份
- Qt多线程初步尝试
- SSH初步整合尝试
- 菜鸟尝试初步编程
- Spark 的初步尝试
- gearman初步尝试
- OJ实现初步尝试
- 初步尝试shiny包
- Ajax的初步尝试
- ssh初步尝试
- 初步尝试python爬虫
- 初步尝试tidb
- Nodejs 初步尝试
- 初步尝试windowsServer程序
- linux初步尝试
- 初步尝试kotlin
- TLC16550C ace(异步通行设备) 文档学习
- RTP 实时传输协议
- javascript XMLHttpRequest 对象的open() 方法参数说明
- Flex 中利用Matrix 类的rotate函数对图片进行旋转操作的例子
- "RemoteOperationException: ERROR: Wrong password for user"错误 解决方案
- 初步尝试WPF
- CArray的使用
- C#中自定义消息传送数组
- 基础代码汇总整理 for NOIP 2009 修订版(上)
- malloc/free 和new/delete总结
- RTP的FAQ
- SoapUI Knowledge sharing
- DB2 OLAP函数的使用
- JS去空格