我正在尝试将一个文本框绑定到包含一行的datatable。但是我想要将文本框绑定到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以更好的方式编写连接扩展方法?
发布于 2016-01-21 22:02:07
如果你正在谈论xaml框架,你可以使用MultiValueConverters和ValueConverters。
但是,winforms绑定会生成两个重要且有用的事件: Format和Parse。
format事件在将数据从源拉入控件时激发,而Parse事件在将数据从控件拉回数据源时激发。如果您处理了这些事件,则可以在绑定期间更改/重新键入来回切换的值。
https://stackoverflow.com/questions/34925566
复制相似问题