//Slider进度条与TextBox间的数据绑定。
<SliderName="m_slider"></Slider>
<TextBox Text="{Binding Value,ElementName=m_slider}"Name="m_text_main"></TextBox>
//Value是m_slider的一个属性值
//数据绑定的类。C#类的添加:右键点击解决方案--添加--类;
1.创建一个类
class
MyClass
{
public
string name
{
get;
set;
}
public
string age
{
get;
set;
}
}
2.给要绑定的控件设定DataContext
MyClass m_me =
new MyClass();//创建类并初始数据
privatevoid Window_Loaded(objectsender,
RoutedEventArgs e)
{
m_me.name = "乡巴佬";
m_me.age = 23;
m_txtName.DataContext = m_me;//让控件变量绑定类
m_txtAge.DataContext = m_me;
//上面两行代码可以用this.DataContext=m_me;代替。因为this指主窗口,<Grid>标签在里面,而这些控件在<Grid>里面,所以这样可以快速使某个标签里的所有控件快速绑定。另外,后面是还可以再绑定为另外的对象的,比如this.DataContext=m_me;m_txtAge.DataContext
= m_her;(PS:this可以用标签名替换)
}
3.控件绑定类的某成员变量
<TextBox Name="m_txtName" Text="{Binding
name}"></TextBox>
<TextBox Name="m_txtAge" Text="{Binding
age}"></TextBox>
//m_txtName是控件变量名称,name是第2步绑定的类的成员变量
//Binding name,UpdateSourceTrigger=PropertyChanged表改变界面项的值后同步修改数据源的值?然后在控件RowEditEnding时间中e.Row.DataContext获得修改后对象
效果如上,程序加载时就给类成员赋值,控件就间接接收并显示了。
//以上只能实现界面数据改变,后台类对象的成员值跟着改变。若在后台代码出修改类对象成员的值,与之绑定的控件的界面值是不会更新的。
//要实现双向数据通讯,还要让类实现INotifyPropertyChanged接口。
classMyClass:INotifyPropertyChanged//同样,此次要选择INotifyPropertyChanged,右键,解析得到命名空间,但还要增多一步:选择INotifyPropertyChanged,右键,实现接口。
{
privateint_age;
publicstringname
{
get;//这些是简写模式
set;
}
publicintage
{
get
{
return_age;
}
set
{
this._age=value;//value转到定义,?其实就是publicintage//这里暂时不知道这种机制
if(PropertyChanged!=null)//如果没有点击实现接口,就没有PropertyChanged这个成员
{
PropertyChanged(this,newPropertyChangedEventArgs("age"));//表明age属性发生了改变
}
}
}
publiceventPropertyChangedEventHandlerPropertyChanged;//自动产生的
}
//后面写个按钮,让m_me.age++就能看到效果了。下面是教程的板书
//ListBox
<ListBox>
<ListBoxItemContent="1"></ListBoxItem>
<ListBoxItemContent="2"></ListBoxItem>
</ListBox>
//上面的代码可以用下面的代码表示
MyClassm_me=newMyClass();
privatevoidWindow_Loaded(objectsender,RoutedEventArgse)
{
m_me.name="乡巴佬";
m_me.age=23;
List<MyClass>m_list=newList<MyClass>();
m_list.Add(m_me);//把类对象加进去
m_lbName.ItemsSource=m_list;//ListBox标签“绑定该类”
}
//这样ListBox就可以显示该类对象了,但要显示该对象的哪个成员,还需在标签设置DisplayMemberPath
<ListBoxName="m_lbName"DisplayMemberPath="name"SelectedValuePath="age"></ListBox>
//而SelectedValuePath则是为了获取选中项对应的类对象的某成员值。
privatevoidm_getAge_Click(objectsender,RoutedEventArgse)
{
objectm_age=m_lbName.SelectedValue;//注意这里是SelectedValue而标签处是SelectedValuePath
objectm_all=m_lbName.SelectedItem;//获取整个类对象,调试断点运行看看。
}
==============================================================
//DataGrid
首先创建一个类
classCClass
{
publicstringname//姓名
{get;set;}
publicboolisgirl//是否女生
{get;set;}
publicstringinclass//所在班级
{get;set;}
}
创建一个<DataGrid>标签后,先看看后台代码
privatevoidWindow_Loaded(objectsender,RoutedEventArgse)
{
//创建一个List供名称为m_dg_class的<DataGrid>控件绑定
List<CClass>m_lClass=newList<CClass>();
m_lClass.Add(newCClass{name="乡巴佬",isgirl=false,inclass="一班"});
m_lClass.Add(newCClass{name="乡下妹",isgirl=true,inclass="二班"});
m_lClass.Add(newCClass{name="乡下狗",isgirl=false,inclass="X班"});
m_dg_class.ItemsSource=m_lClass;
//<DataGrid>可以显示Combo控件,使用方法与常规不同,需新增一个List,注意新增的List没“X班”,用来测试的……
List<string>inclass=newList<string>();
inclass.Add("一班");
inclass.Add("二班");
m_dg_combo_class.ItemsSource=inclass;
}
看看界面代码
<DataGridName="m_dg_class"AutoGenerateColumns="False"CanUserAddRows="False"><DataGrid.Columns>
<DataGridTextColumnBinding="{Bindingname}"Header="姓名"></DataGridTextColumn>
<DataGridCheckBoxColumnBinding="{Bindingisgirl}"Header="是否女生"></DataGridCheckBoxColumn>
<DataGridComboBoxColumnx:Name="m_dg_combo_class"SelectedItemBinding="{Bindinginclass}"></DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
//AutoGenerateColumns:自动设置。CanUserAddRows用户可以自己增加行。
//DisplayMemberPath=”Name”表显示哪个变量的值,SelectedVauluPath=”Id”表获取以“”为条件的数据。SelectdeValuBingding绑定
分享到:
相关推荐
1. WPF控件开发之控件概述 95 2. 使用XAML创建按钮 103 3. WPF控件库之BUTTON 114 4. WPF控件库之MENU 115 5. WPF控件库之LABLE 119 6. WPF控件库之TOOLBAR 121 7. WPF控件开发之自定义控件 124 8. WPF控件开发之...
WPF的数据绑定功能非常强大,在控件中使用数据绑定功能会为你节省大量的处理时间。本示例中,将一个变量绑定到一个控件上,在代码中改变变量值,并立刻引起控件值的变化。此代码经过删减,仅仅保留精简内容,一看就...
使用c#绑定树控件(WPF) 学习的时候手写的简单例子。
wpf的界面功能很强大,尤其是其绑定机制天然的支持mvvm模式,这样使得界面和业务逻辑可以完全分离,大大提高了自定义控件的灵活性和通用性。在做视频剪辑工具的时候是需要尺子控件的,在wpf中很容易实现一个自定义的...
本INotifyPropertyChanged示例中,将一个类变量(Student)绑定到一个控件上,在代码中改变变量值,并立刻引起控件值的变化。此代码经过删减,仅仅保留精简内容,添加注释,简洁明了。 调试环境:Visual Studio 2017...
WPF下DataGrid每行设置不同的ComboBox的数据绑定 DataGrid设置一次ItemSource 每个ComboBox也要设置一次ItemSource 有点像通过两次映射来绑定
c# DataGrid 中绑定CoboBox控件
C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
WPF自定义控件,完全原创, 采用命令绑定模式,要用分页的地方,只需要继承RepeaterPageViewModel 模型就行了,重用性,可扩展性很高,方便实用,代码包含了:ModelBase类,RelayCommand类,很实用的.还用到了WPFToolkit....
DsoFramer接口文档 ,WPF 结合DsoFramer嵌入Office应用程序, 操作word文档, excel文档 ,
wpf 给控件绑定静态变量,静态变理改变后控件上的值随着变量的demo,这只是个demo,具体应用场景可以根据实际的情况进行调整,本demo使用 vs2019进行编写。
关于 RichTextBox 文本 文件的拖拽 编辑命令和程序命令与菜单的绑定 控件的画刷,FlowDocument文件的加载 保存,都是一些 MSDN上的东西 ,学了一点,就拼凑到了一起.练习了 一下 还有 一些 简单的例子 的源代码 希望有点...
记载了livecharts各种统计图,可以分离出来用作wpf自己的插件,有饼图,柱形图等等
C#中为DataGrid添加下拉列表框,本文将介绍如何在 System.Windows.Forms.DataGrid中切入使用ComboBox控件,主要包括三方面的内容。
通过滑块slider控制矩形的长宽,圆形的颜色。简单的入门程序。主要是三个注意的地方:控件的属性绑定,本地静态资源的标记,值转换类的定义
WPF的控件中Command属性绑定了命令,与通常Click方式不同的是,它没有相应函数,这样的命令是这样执行的。
本书包含以下教程:WPF基础入门、XAML语法、WPF控件开发、WPF数据绑定、WPF图形和多媒体开发
手动动态添加 PropertyGrid 的数据行并显示 C# (非属性绑定方式)
WPF编程宝典c#2010中文电子书,绝对适合初学者。 目录:第1章 wpf概述 第2章 xaml 第3章 布局 第4章 依赖项属性 第5章 路由事件 第6章 控件 第7章 application类 第8章 元素绑定 第9章 命令 第10章 资源 第11章 样式...
本程序是用.net C# 2010 进行wpf应用程序开发,将数据集与可视控件绑定的示例,对wpf编程初学者有所帮助。