簡體   English   中英

將多個數據表列綁定到一個多行文本框

[英]Bind multiple datatable columns to one multiline textbox

我正在嘗試將文本框綁定到包含一行的數據表。 但我希望將文本框綁定到4列的串聯。

我不確定是否可以在綁定期間不這樣做。

接下來的這個工作正常,但我也希望將“ SHIP_ADDRESS1”連接到我的多行文本框中。

shipToTextbox.DataBindings.Add("Text",dataTbl, "SHIP_TO");

綁定期間有辦法嗎?

編輯:

我向DataTable添加了擴展方法,如下所示:

public static DataTable Concatenates(this DataTable datatable, string columnName, params string[] columns)
    {
        var column = new DataColumn(columnName, typeof(String));
        datatable.Columns.Add(column);

        var concatenation = string.Empty;

        foreach (var c in columns)
        {
            if (string.IsNullOrEmpty(concatenation))
            {
                concatenation = datatable.Rows[0][c].ToString().Trim();
            }
            else
            {
                concatenation = concatenation + Environment.NewLine + datatable.Rows[0][c].ToString().Trim();
            }
        }

        datatable.Rows[0][column] = concatenation;

        return datatable;
    }

我稱之為:

shipToTextbox.DataBindings.Add("Text", dt.Concatenates("SHIP", "SHIP_TO", "SHIP_ADDRESS1", "SHIP_ADDRESS2", "SHIP_ADDRESS3"), "SHIP");

這是可以接受的解決方案嗎? 有沒有一種方法可以使用LINQ更好地編寫Concatenate擴展方法?

如果您正在談論xaml框架,則可以使用MultiValueConverters和ValueConverters。

但是,winforms綁定會生成兩個重要且有用的事件:Format和Parse。

將數據從源中拉到控件中時,將觸發format事件;將數據從控件中拉回到數據源中時,將觸發Parse事件。 如果處理這些事件,則可以更改/重新鍵入綁定期間來回移動的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM