none
databind 後更新值的問題 RRS feed

  • 問題

  • 我有個 Class A , 且 BindingSource.DataSource =  A 。

    Form 上的幾個 TextBox (T1 T2 T3) 也都設定好 databind 。

    如果手動直接在 TextBox 上面修改值,是可以成功的。

    不過如果是透過程式碼計算 例如: T3.text = T2.text & "KG"

    但我在 T1 T2 T3 游標移動時,值都會跑回原先進來的值,

    該如何讓程式碼更新的值,也能真的異動資料呢??

    2013年10月2日 上午 03:05

解答

所有回覆

  • 您好,

    請參考 Winforms data binding for TextBox

    this.textBox1.DataBindings.Add("Text", clsA, "TxtTest", false, DataSourceUpdateMode.OnPropertyChanged);


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2013年10月2日 上午 05:08
    • 已標示為解答 小見光二 2013年10月2日 上午 09:49
    2013年10月2日 上午 05:06
  • 謝謝,有測試過了可以解決問題。

    不過,我有個自訂元件:TextBox + ComboBox

    有個屬性如下:

        Public Property LinkValue() As Object
            Get
                Return Me.ID.Text
            End Get
            Set(ByVal value As Object)
                Me.ID.Text = value
                Me.Des.SelectedValue = value
            End Set
        End Property

    -------------------------------------------------------

    自訂元件xxx.DataBindings.Add("LinkValue", CLASSA, "CLASSA屬性", false, DataSourceUpdateMode.OnPropertyChanged)

    還是會出現以上情況,想請問該如何解決呢?

    2013年10月2日 上午 08:57
  • 您好,
    如果在設定值之後,再呼叫 WriteValue 呢?
    xxx.LinkValue = .....
    xxx.DataBindings[0].WriteValue();

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年10月2日 上午 09:07
  • 我倒是認為,  應該要反過來做.

    除非是使用者的輸出入行為, 否則你應該拿資料運算, 而非對著 View 上的控制項屬性運算


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 <br/> <a target="_blank" href="http://www.bplan.com.tw/chunfeng/front/bin/ptlist.phtml?Category=103591"><img border="0" src="http://files.dotblogs.com.tw/billchung/1007/20107414497912.gif" width="200" height="67"></a>

    2013年10月2日 下午 02:13
    版主