将TextBox值绑定到控件层中的生成列表

时间:2015-11-17 12:09:03

标签: c# wpf xaml

我创建了一个程序,它从列表中读取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; }
    }

我还添加了一个可以更改值的虚拟对象,以检查它们是否被检索,这没有任何效果。

1 个答案:

答案 0 :(得分:1)

您需要为List创建一个Property,然后将特定元素绑定到文本框,如:

<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"/>

并在您的controller.cs中:

private List<Sensor> _sensors;

public List<Sensor> Sensors
{
    get { return _sensors; }
    set { _sensors = value; }
}

重要的是,您将MainPage.xaml的DataContext设置为Controller(我假设这是您的viewmodel)。

以下是一些可能对数据绑定和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