将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值绑定到控件层中生成的列表

您需要为您的列表创建一个属性,然后将特定元素绑定到文本框,如:

<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