是否有一种简单的方法来标记标签并包含一些自定义文本?
当然我可以像这样绑定一个标签:
someLabel.DataBindings.Add(new Binding(“Text”,this.someBindingSource,“SomeColumn”,true));
但是我如何添加自定义文本,以便结果如下: someLabel.Text =“自定义文字”+ databoundColumnText;
我是否真的需要使用自定义代码......?
(也许我的脑袋因感冒而昏暗,我看不到简单的解决方案?)
TIA对此事提供任何帮助。
答案 0 :(得分:14)
您始终可以使用Binding.Format事件。
http://msdn.microsoft.com/en-us/library/system.windows.forms.binding.format.aspx
数据时会引发Format事件 被从数据源推送到 控制。您可以处理格式 从中转换未格式化数据的事件 将数据源转换为格式化数据 用于显示。
像...一样的东西。
private string _bindToValue = "Value from DataSource";
private string _customText = "Some Custom Text: ";
private void Form1_Load(object sender, EventArgs e)
{
var binding = new Binding("Text",_bindToValue,null);
binding.Format += delegate(object sentFrom, ConvertEventArgs convertEventArgs)
{
convertEventArgs.Value = _customText + convertEventArgs.Value;
};
label1.DataBindings.Add(binding);
}
答案 1 :(得分:1)
我不知道有什么简单的方法,但应该使用的是一个带有额外属性的派生类,它返回修改后的文本。
class FooAppendedText : FooText
{
public String AppendedText { get { return this.Text + " xyz"; }}
}