使用其他文本在C#中标记标签?

时间:2010-10-14 16:34:40

标签: c# winforms data-binding

是否有一种简单的方法来标记标签并包含一些自定义文本?

当然我可以像这样绑定一个标签:

someLabel.DataBindings.Add(new Binding(“Text”,this.someBindingSource,“SomeColumn”,true));

但是我如何添加自定义文本,以便结果如下: someLabel.Text =“自定义文字”+ databoundColumnText;

我是否真的需要使用自定义代码......?

(也许我的脑袋因感冒而昏暗,我看不到简单的解决方案?)

TIA对此事提供任何帮助。

2 个答案:

答案 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"; }}
}