我的textbox.text属性有一个字符串绑定,一旦绑定为null,我的文本框中就不会显示任何内容。但是我想显示一个不同的文本而不是String.Empty
在wpf中有一个属性TargetNullValue,它在那里为我工作。但我在WinForms NullValue中找不到等价物,DataSourceNullValue对我来说也没有做同样的事情......
所以这里是我的代码示例
list= new BindingList<item>();
BindingSource bs = new BindingSource();
bs.DataSource = list;
Binding tbBinding= new Binding("Text", bs, "Name", true, DataSourceUpdateMode.OnPropertyChanged);
tb.DataBindings.Add(tbBinding);
绑定工作正常,直到列表为空。我不知道如何正确指定空值
编辑:
新代码段
selectedSweeps = new BindingList<Sweep>();
BindingSource bsSweep = new BindingSource();
bsSweep.DataSource = selectedSweeps;
lbSelectedSweeps.DataSource = bsSweep;
lbSelectedSweeps.DisplayMember = "DisplayText";
Binding nameBinding = new Binding("Text", bsSweep, "Name", true, DataSourceUpdateMode.OnPropertyChanged);
nameBinding.NullValue = "error text";
tbSweepName.DataBindings.Add(nameBinding);
答案 0 :(得分:0)
您可以为文本框添加TextChanged事件。 转到设计器,双击文本框,以下事件将显示在代码中: 在括号之间添加代码以检查.Text属性。
private void textbox_TextChanged(object sender, EventArgs e)
{
//Check if .Text property of textbox is equal to null or is empty.
if(String.IsNullOrEmpty(textbox.text))
{
//Set Default empty value here.
}
}
答案 1 :(得分:0)
我认为您想使用使用自定义格式字符串的Binding Constructor overload。
而不是
Binding tbBinding= new Binding(
"Text",
bs,
"Name",
true,
DataSourceUpdateMode.OnPropertyChanged);
尝试类似
的内容Binding tbBinding= new Binding(
"Text",
bs,
"Name",
true,
DataSourceUpdateMode.OnPropertyChanged,
"[not specified]");