The aim is to see the list as a list of 'name's.
Here's the dictionary:
class Scripts
{
public Dictionary<int, Script> scripts = new Dictionary<int, Script>();
...
}
Here's the attribute 'name' I'm after:
class Script
{
public string name { get; set; }
...
}
And here's the problem:
public partial class MainForm : Form
{
Scripts allScripts;
public MainForm()
{
InitializeComponent();
allScripts = new Scripts();
setupDataSources();
}
private void setupDataSources()
{
BindingSource ketchup = new BindingSource(allScripts.scripts, null);
//THIS LINE:
listBoxScripts.DisplayMember = allScripts.scripts["Key"].name.ToString();
listBoxScripts.ValueMember = "Key";
listBoxScripts.DataSource = ketchup;
}
...
}
I just can't think how to make that line work! Your advice is much appreciated!
Thanks
You can binding to Value
and override ToString
method in Script
class.
private void setupDataSources()
{
BindingSource ketchup = new BindingSource(allScripts.scripts, null);
listBoxScripts.DisplayMember = "Value";
listBoxScripts.ValueMember = "Key";
listBoxScripts.DataSource = ketchup;
}
Script class:
class Script
{
public string name { get; set; }
public override string ToString()
{
return name;
}
}