将 TextBox 绑定到 ListBox SelectedItem 不起作用
Binding TextBox to ListBox SelectedItem does not work
我有一个 Winforms 应用程序,其中有一个列表框和一个文本框。列表框通过 BindingList 显示项目列表,并且对于每个项目,显示项目的 属性 名称。我想在列表中的所选项目的列表旁边显示文本框中项目的全名。
为 ListBox 创建 BindingList 没问题,但我无法让 TextBox 工作。我在 SO () 上发现了一个问题,它给出了一个例子,但我仍然无法让它工作。代码编译完美,但 TextBox 什么也不显示。
这是我写的代码:
itemList = new BindingList<Item>();
itemSource = new BindingSource(itemList, null);
lstItems.DataSource = itemSource; // previously I used itemList which also seemed to work?
txtItem.DataBindings.Add(new Binding("Text", itemSource, "Fullname", false, DataSourceUpdateMode.OnPropertyChanged));
全名是项目 class 的 属性,我在上面的示例中尝试了 BindingList/BindingSource 的各种组合,但似乎没有任何效果。
我一定是漏掉了什么,但我没看到。谁能指出我正确的方向?谢谢!
编辑:为 Pavan Chandaka 添加了项目 class
public class Item
{
private string fullname;
public Item(string fullname)
{
this.fullname = fullname;
}
public string Fullname()
{
return "Fullname: " + fullname;
}
public override String ToString()
{
return Fullname();
}
}
您的 Item
class 没有 属性 进行适当的绑定。
保持简单并尝试以下修改 Item
class.
public class Item
{
//PROPERTY
public string Fullname { get; set; }
//CONSTRUCOR
public Item(string fullname)
{
this.Fullname = fullname;
}
//OVERRIDE TOSTRING
public override string ToString() => $"{this.Fullname}";
}
我有一个 Winforms 应用程序,其中有一个列表框和一个文本框。列表框通过 BindingList 显示项目列表,并且对于每个项目,显示项目的 属性 名称。我想在列表中的所选项目的列表旁边显示文本框中项目的全名。
为 ListBox 创建 BindingList 没问题,但我无法让 TextBox 工作。我在 SO (
这是我写的代码:
itemList = new BindingList<Item>();
itemSource = new BindingSource(itemList, null);
lstItems.DataSource = itemSource; // previously I used itemList which also seemed to work?
txtItem.DataBindings.Add(new Binding("Text", itemSource, "Fullname", false, DataSourceUpdateMode.OnPropertyChanged));
全名是项目 class 的 属性,我在上面的示例中尝试了 BindingList/BindingSource 的各种组合,但似乎没有任何效果。
我一定是漏掉了什么,但我没看到。谁能指出我正确的方向?谢谢!
编辑:为 Pavan Chandaka 添加了项目 class
public class Item
{
private string fullname;
public Item(string fullname)
{
this.fullname = fullname;
}
public string Fullname()
{
return "Fullname: " + fullname;
}
public override String ToString()
{
return Fullname();
}
}
您的 Item
class 没有 属性 进行适当的绑定。
保持简单并尝试以下修改 Item
class.
public class Item
{
//PROPERTY
public string Fullname { get; set; }
//CONSTRUCOR
public Item(string fullname)
{
this.Fullname = fullname;
}
//OVERRIDE TOSTRING
public override string ToString() => $"{this.Fullname}";
}