我的代码中有这一行
UserLoginLabel.DataBindings.Add(new Binding("Text", Foo, "bar.Username"));
正确显示文本框中的用户名(以及用户名)。怎么来这个代码
Binding b = new Binding("Text", Foo, "bar.Username")
{
FormatString = "Logged in as {0}.",
FormattingEnabled = true
};
UserLoginLabel.DataBindings.Add(b);
有完全相同的效果吗?这不是如何格式化数据绑定吗?
答案 0 :(得分:2)
您需要使用Format
事件:
var b = new Binding("Text", Foo, "bar.Username");
b.FormattingEnabled = true;
b.Format += b_Format;
UserLoginLabel.DataBindings.Add(b);
private void b_Format(Object sender, ConvertEventArgs e)
{
if (e.DesiredType == typeof(String)) //optional, you decide
e.Value = $"Logged in as {e.Value}.";
}
您必须注意的是,每次要格式化值时,都会将其命名为。这可能由于多种原因而发生,因此您可以获得已格式化的e.Value
。