WPF课堂例子
来源:互联网 发布:linux下载安装jdk1.8 编辑:程序博客网 时间:2024/06/01 10:12
详细可看:https://www.cnblogs.com/mq0036/p/6232331.html
2:新建一个class MyData类
class MyData
{
private string data = "这是个模型";
public string Data
{
get { return data; }
set { data = value; }
}
}
界面中添加
<StackPanel>
<TextBox Text="{Binding Data}"></TextBox> 将后台数据绑定到界面中的TextBox中
<Button Content="查看"></Button>
</StackPanel>
后台映射这个类:
public partial class MainWindow : Window
{
MyData md;
public MainWindow()
{
InitializeComponent();
md = new MyData();
this.DataContext = md; //全部都是用这个类传递数据
}
}
3:增加一个点击按钮,需要设置Resources、CommandBindings,并在Excuted中设置点击的事件,CanExecute表示按钮是否可用
前台:
<Window.Resources>
<RoutedCommand x:Key="ShowData"></RoutedCommand>
</Window.Resources>
<Window.CommandBindings>
<CommandBinding Command="{StaticResource ShowData}" Executed="ShowData_Executed" CanExecute="ShowData_CanExecuted"></CommandBinding>
</Window.CommandBindings>
<StackPanel>
<TextBox Text="{Binding Data}"></TextBox>
<Button Content="查看" Command="{StaticResource ShowData}"></Button>
</StackPanel>
后台添加:
private void ShowData_Executed(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show(md.Data);
}
private void ShowData_CanExecuted(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
增加 UpdateSourceTrigger=PropertyChanged 后,前台数据改变,后台的数据可以时时改变
<TextBox Text="{Binding Data, UpdateSourceTrigger=PropertyChanged}"></TextBox>
4:增加清除功能
前台
<Window.Resources>
<RoutedCommand x:Key="ShowData"></RoutedCommand>
<RoutedCommand x:Key="ClearData"></RoutedCommand>
</Window.Resources>
<Window.CommandBindings>
<CommandBinding Command="{StaticResource ShowData}" Executed="ShowData_Executed" CanExecute="ShowData_CanExecuted"></CommandBinding>
<CommandBinding Command="{StaticResource ClearData}" Executed="ClearData_Executed" CanExecute="ClearData_CanExecuted"></CommandBinding>
</Window.CommandBindings>
<StackPanel>
<TextBox Text="{Binding Data, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<Label Content="{Binding Data}"></Label>
<Button Content="查看" Command="{StaticResource ShowData}"></Button>
<Button Content="清除" Command="{StaticResource ClearData}"></Button>
</StackPanel>
后台:
private void ClearData_Executed(object sender, ExecutedRoutedEventArgs e){
md.Data = string.Empty;
}
private void ClearData_CanExecuted(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
点击清除发现文本卡框中的数据并没有清空,然而查看时却已经清空了,说明数据已经改变了,只是没有实时的显示出来
需要在原来的数据类中添加一个已经写好的继承类:INotifyPropertyChanged,当属性值改变时会操作
class MyData : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string data = "这是个模型";
public string Data
{
get { return data; }
set
{
if (Data == value) return;
data = value;//这个不能改成Data
if (PropertyChanged != null)
{
PropertyChanged(this,new PropertyChangedEventArgs("Data"));
}
}
}
}
- WPF课堂例子
- WPF--Transform小例子
- Wpf Button样式例子
- WPF NotifyIcon 实现例子
- WPF 触发器例子
- 一个综合性的WPF例子
- 一个综合性的WPF例子
- 通过例子学习WPF开发
- Wpf资源目录相关例子
- wpf值转换器IValueConverter例子
- WPF 使用INotifyDataErrorInfo小例子
- WPF访问数据库的小例子
- C#之WPF应用小例子
- WPF之DataGrid应用--几个例子
- WPF之DataGrid应用--几个例子
- WPF TabControl 竖版简单例子
- WPF 一个MVVM的简单例子
- WPF 一个MVVM的简单例子
- 蓝桥杯 基础练习 字母图形
- 好书推荐《蚀心者》(剧透高能预警)
- Android 使用 FFmpeg (二)——视屏流播放简单实现
- C语言递归嵌套
- spring注解应用场景
- WPF课堂例子
- 实时聊天APP(websocket+hybridAPP)
- python爬虫实战:《星球大战》豆瓣影评分析
- 使用MyEclipse进行单元测试(基础)
- 使用理想低通滤波器对图像进行处理显示
- cascade与inverse之间的区别?
- Linux启动过程
- 懒加载
- POJ3187 Backward Digit Sums 【暴搜】杨辉三角