2015-11-17 30 views
1

我已經創建了一個程序,它從列表中讀取TextBox值,實現它們,然後在它們更改(失去焦點時)時更新用戶眼睛的列表值。將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; } 
    } 

我還添加了可能會改變數值的假人,以檢查y正在被檢索,這沒有做任何事情。

回答

1

你需要創建一個屬性爲您的列表,然後綁定特定元素的文本框,如:

<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

+0

謝謝你爲此。通過ViewModel,你的意思是用戶看到什麼,或者什麼,這對我來說很陌生?無論如何,我已經實現了你所說的話,但是我的'公開名單 Sensors'沒有參考文獻,我敢肯定我錯了,你能幫忙嗎? – Badja

+1

嘗試進入MainPage.xaml.cs,在那裏,您定義了controller.cs的新對象,並將MainPage的數據上下文設置爲控制器的對象。像這樣:this.DataContext = new Controller(); – FKutsche

+1

ViewModel是MVVM的一部分,它是wpf應用程序的設計模式。你應該看看那個! – FKutsche

相關問題