Связать ли метку в C # с дополнительным текстом? - PullRequest
7 голосов
/ 14 октября 2010

Существует ли простой способ привязать данные к ярлыку и добавить какой-либо пользовательский текст?

Конечно, я могу привязать ярлык так:

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

Но как бы я добавил пользовательский текст, чтобы результат был примерно таким: someLabel.Text = "Пользовательский текст" + databoundColumnText;

Мне действительно нужно прибегнуть к пользовательскому коду ...?

(может быть, моя голова слишком затуманена от холода, и я не вижу простого решения?)

TIA за любую помощь по этому вопросу.

Ответы [ 2 ]

14 голосов
/ 14 октября 2010

Вы всегда можете использовать событие 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 голос
/ 14 октября 2010

Я не знаю ни одного простого способа, но должен работать производный класс с дополнительным свойством, которое возвращает измененный текст.

class FooAppendedText : FooText
{
  public String AppendedText { get { return this.Text + " xyz"; }}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...