大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
WPF
中
,
对控件做数据
banding
,
可以方便的进行赋值和获得值的操作
:
例如一
:
Grid
>
<
Slider
Name
=”Slider1″
HorizontalAlignment
=”Left”
Margin
=”38,55,0,0″
VerticalAlignment
=”Top”
Height
=”19″
Width
=”227″
/>
<
TextBox
Text
=”{Binding Value,ElementName=Slider1}”
HorizontalAlignment
=”Left”
Height
=”23″
Margin
=”38,101,0,0″
TextWrapping
=”Wrap”
VerticalAlignment
=”Top”
Width
=”120″
/>
</
Grid
>
:(
可以通过
slider
来滑动,控制
textbox
值的显示
)

:
为控件设置数据源
:
.a New
一个类的实例,给 要绑定的控件设定
DataContext
private
void Window_Loaded(
object sender, RoutedEventArgs e)


new Person();


“Charles”;




public
class Person

public
int Age { set; get; }

public
string Name { set; get; }

.
b
XAML
中设置数据绑定的控件属性
<
TextBox
Name
=”tbName”
ToolTip
=”{Binding Name}”
HorizontalAlignment
=”Left”
Height
=”23″
Margin
=”80,162,0,0″
TextWrapping
=”Wrap”
Text
=”{Binding Name}”
VerticalAlignment
=”Top”
Width
=”120″
/>
<
TextBox
Name
=”tbAge”
ToolTip
=”{Binding Age}”
HorizontalAlignment
=”Left”
Height
=”23″
Margin
=”80,207,0,0″
TextWrapping
=”Wrap”
Text
=”{Binding Age}”
VerticalAlignment
=”Top”
Width
=”120″
/>
<
TextBlock
Text
=”姓名”
Width
=”30″
Margin
=”39,163,434,125″
/>
<
TextBlock
Margin
=”38,207,435,81″
Text
=”年龄”
Width
=”30″
/>
显示效果:

,
此种做法
,
无法将从后台变化的值在界面体现
;
如果需要后台对象值变化
,
前台也变化
,
就使用【
INotifyPropertyChanged
】”属性变化通知”机制来实现
.
2.a
修改类的定义
(
注意需要引入
System.ComponentModel
)
:
INotifyPropertyChanged
,并实现该接口方法,如下:
:
using
System.ComponentModel;

class Person : INotifyPropertyChanged


private
int age;

private
string name;

public
int Age


return age; }



this.age = value;

if (PropertyChanged !=
null)


this,
new PropertyChangedEventArgs(
“Age”));




public
string Name


return name; }


this.name = value;

if (PropertyChanged !=
null)


this,
new PropertyChangedEventArgs(
“Name”));




public
event PropertyChangedEventHandler PropertyChanged;

其他步骤同上述
1.a\1.b,
为看到效果,可以添加一个按钮来实现!

private
void btAge_Click(
object sender, RoutedEventArgs e)



截图:

banding
)之争:
对控件上下文
(
DataContext
)
的指定
,
第一种
:
可以直接指定给控件
,
缺点是当控件多了
,
代码量相对来说就多来了
;
第二种
:
指定给其父控件
,
当不给子控件指定
DataContext
时
,
默认使用父控件的上下文
,
相对来说
,
代码简约
.
:
:

new Person();


“Charles”;


采用第二种
:

new Person();

this.DataContext = person;(注意:
this,指代当前窗体,也可以使用当前需要绑定上下文的共有父控件,如grid1.DataContext=person)
转载于:https://blog.51cto.com/charlesxiao/1138931
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182535.html原文链接:https://javaforall.net