将TextBox值绑定到控件层中生成的列表
本文关键字:列表 控件 TextBox 绑定 | 更新日期: 2023-09-27 18:22:10
我创建了一个程序,从列表中读取TextBox值,实现它们,然后当它们更改时(焦点丢失时),列表值会为用户的眼睛更新。
TLDR:更改文本框值,列表中的值更改
我希望能够在重构阶段使用数据绑定,因为当我处理大量数据时,十几行代码是不切实际的。
不幸的是,我真的不知道数据绑定。有人能告诉我在这种情况下该怎么做吗?
Data.cs
protected bool _Enabled;
protected long _SensorId;
protected float _Min;
protected float _Maxe;
protected SensorType _SType;
以及它链接到的位置:
Controller.cs
List<Sensor> _Sensors = new List<Sensor>();
这链接到传感器ID,如果它有助于解释任何
显示内容:
MainPage.xaml
<TextBox Name="txtMin_1" Text="" LostFocus="MinMaxValueChange"/>
<TextBox Name="txtMin_2" Text="" LostFocus="MinMaxValueChange"/>
<TextBox Name="txtMin_3" Text="" LostFocus="MinMaxValueChange"/>
<TextBox Name="txtMin_4" Text="" LostFocus="MinMaxValueChange"/>
我希望在Text
中,我可以使用Text="{Binding}"
从列表中提取文本框使用的所有值
我的要求有意义吗?有人能帮忙吗?如果没有意义,请询问,因为我很乐意提供我能提供的所有信息。
编辑:进度更新
下面是我从提供的答案中添加的代码:
MainPage.xaml.cs
Controller = new Controller(this);
this.DataContext = Controller.Sensors;
Controller.cs
private List<Sensor> _sensors;
public List<Sensor> Sensors
{
get { return _sensors; }
set { _sensors = value; }
}
我还添加了一个可以更改值的假人,以检查它们是否被检索到,但这并没有起到任何作用。
您需要为您的列表创建一个属性,然后将特定元素绑定到文本框,如:
<TextBox Name="txtMin_1" Text="{Binding Sensors[0]}" LostFocus="MinMaxValueChange"/>
<TextBox Name="txtMin_2" Text="{Binding Sensors[1]}" LostFocus="MinMaxValueChange"/>
<TextBox Name="txtMin_3" Text="{Binding Sensors[2]}" LostFocus="MinMaxValueChange"/>
<TextBox Name="txtMin_4" Text="{Binding Sensors[3]}" LostFocus="MinMaxValueChange"/>
以及在您的控制器中。cs:
private List<Sensor> _sensors;
public List<Sensor> Sensors
{
get { return _sensors; }
set { _sensors = value; }
}
重要的是,您将MainPage.xaml的DataContext设置为Controller(我认为这是您的视图模型)。
以下是一些可能对数据绑定和mvvm:有用的链接
http://www.c-sharpcorner.com/UploadFile/mahakgupta/simple-data-binding-in-wpf/
http://www.codeproject.com/Articles/29054/WPF-Data-Binding-Part
http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial
http://www.codeproject.com/Articles/819294/WPF-MVVM-step-by-step-Basics-to-Advance-Level